Почему Pocket API всегда возвращает 403 Forbidden?

Я пытаюсь назвать эту строку:

curl https://getpocket.com/v3/oauth/authorize --insecure -X POST -H "Content-Type: application/json" -H "X-Accept: application/json" -d "{\"consumer_key\":\"61999-492f79db0bd3292f0b4...1\",\"code\":\"c9166709-0c45-2b1f-a22f-e...r\"}"

и каждый раз, когда я получаю 403 Forbidden,

Я не знаю и не понимаю причину этого.

Кто-нибудь знает? Я тоже пробовал через Python:

import requests

auth_params = {'consumer_key': 'key_here', 'redirect_uri': 'https://www.twitter.com/'}

tkn = requests.post('https://getpocket.com/v3/oauth/request', data=auth_params)

tkn.content

Выше код дает мне код:

usr_params = {'consumer_key': 'key_here', 'code': 'code_here'}
usr = requests.post('https://getpocket.com/v3/oauth/authorize', data=usr_params)
usr.content

здесь я получаю 403 тоже.

Как я могу это исправить?

1 ответ

Из документации API Pocket Authentication вам нужно зарегистрировать приложение, чтобы получить ключ потребителя, а затем запросить токен OAuth через:

curl -X POST \
     -H 'Content-Type: application/json' \
     -d '{"consumer_key":"XXXXX-XXXXXXXXXXXXXXXXXXXXXX","redirect_uri":"AppTest:authorizationFinished"}' \
     https://getpocket.com/v3/oauth/request

Затем шаг 2 должен авторизовать этот токен запроса (этот шаг вы пропустили). В браузере откройте следующий URL с токеном запроса, который вы получили на предыдущем шаге:

https://getpocket.com/auth/authorize?request_token=XXXXXXXX-XXXX-XXXX-XXXX-XXXX&redirect_uri=AppTest:authorizationFinished

Нажмите "Авторизовать":

введите описание изображения здесь

После авторизации токена запроса вы можете позвонить https://getpocket.com/v3/oauth/authorize преобразовать токен запроса в токен доступа Pocket:

curl -X POST \
     -H 'Content-Type: application/json' \
     -d '{"consumer_key":"XXXXX-XXXXXXXXXXXXXXXXXXX","code":"XXXXXXXXX-XXXX-XXXX-XXXX-XXXXX"}' \
     https://getpocket.com/v3/oauth/authorize

Ключ пользователя - тот, который вы получили при создании приложения в Pocket, а токен запроса - сгенерированный из v3/oauth/request конечная точка

Тогда вы получите, как и ожидалось:

{ "access_token":"5678defg-5678-defg-5678-defg56", "username":"pocketuser" }
Другие вопросы по тегам