Skip to content

Latest commit

 

History

History
82 lines (63 loc) · 2.91 KB

README_RU.md

File metadata and controls

82 lines (63 loc) · 2.91 KB

GetPocket API Golang SDK

Release

Основа пакета была сделана на коде из этого репозитория.


Установка

go get -u github.com/Lapp-coder/go-pocket-sdk

Введение

Для создания нового клиента вам потребуется получить consumer key, который выдается при создании вашего приложения на сайте getpocket, а конкретнее здесь.

При создании этого приложения вы можете указать разрешения на использование тех или иных API.

Важно отметить, что если вы не укажите какое-либо из этих разрешений, вы будете получать ошибку, пытаясь вызвать API метод из кода, даже если все остальное пройдет успешно.

Пример использования:

package main

import (
	"context"
	"fmt"
	"log"
	"time"

	pocket "github.com/Lapp-coder/go-pocket-sdk"
)

func main() {
	ctx := context.Background()

	client, err := pocket.NewClient("<ваш-consumer-key>")
	if err != nil {
		log.Fatal(err)
	}

	requestToken, err := client.GetRequestToken(ctx, "https://google.com", "")
	if err != nil {
		log.Fatal(err)
	}

	authURL, _ := client.GetAuthorizationURL(requestToken)
	fmt.Println(authURL)

	// Ожидание до того момента, пока пользователь перейдет по ссылке авторизации и предоставит права приложению.
	fmt.Scanln()

	auth, err := client.Authorize(ctx, requestToken)
	if err != nil {
		log.Fatal(err)
	}

	// Добавка нового элемента пользователю
	_ = client.Add(ctx, pocket.AddInput{
		AccessToken: auth.AccessToken,
		URL:         "https://github.com",
	})

	// Получение всех элементов пользователя
	items, _ := client.Retrieving(ctx, pocket.RetrievingInput{
		AccessToken: auth.AccessToken,
		Favorite:    "0",
	})

	for _, item := range items {
		// Модифицирование всех найденных элементов пользователя
		actions := []pocket.Action{
			{Name: pocket.ActionFavorite, ItemID: item.ID, Time: time.Now().Unix()},
			{Name: pocket.ActionArchive, ItemID: item.ID, Time: time.Now().Unix()},
			{Name: pocket.ActionTagsAdd, ItemID: item.ID, Tags: "github.com, github, system-version-control"},
		}

		_ = client.Modify(ctx, pocket.ModifyInput{
			AccessToken: auth.AccessToken,
			Actions:     actions,
		})
	}
}