Получение данных из Pocket API (oAuth)

Мне нужно получить сохраненный список чтения из моей учетной записи Pocket, и мне кажется, что мне нужно получить токен доступа через их oAuth, чтобы сделать запрос.

У меня есть ключ потребителя для токена доступа, и согласно документации Pocket API, запрос будет выглядеть примерно так.

POST /v3/oauth/request HTTP/1.1
Host: getpocket.com
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Accept: application/x-www-form-urlencoded

consumer_key=1234-abcd1234abcd1234abcd1234&
redirect_uri=pocketapp1234:authorizationFinished

У меня вопрос... разве oAuth для сторонних приложений, чтобы включить аутентификацию через Google, учетную запись Facebook? Я не понимаю, насколько эта идея актуальна для моего веб-сайта, которому для доступа на мой сайт потребуется только доступ к моим собственным данным из Pocket.

Я понимаю, что мне нужно будет как-то пройти аутентификацию, чтобы получить доступ к своим данным, но неужели это процесс, который мне нужно пройти, чтобы получить то, что мне нужно?

2 ответа

Решение

Похоже, что они поддерживают только 3 потока OAuth. Вы можете использовать Grant в своем приложении NodeJS или просто получить токен доступа отсюда.

Грант

  • сохраните следующий пример в файл
  • установите свой ключ здесь: key:'...'
  • установить необходимые зависимости
  • запустите файл с помощью node.js
  • перейдите к http://localhost:3000/connect/getpocket
  • следуйте инструкциям на экране

В конце вы увидите свой access_token,

var express = require('express')
  , session = require('express-session')

var options = {
  server: {protocol:'http', host:'localhost:3000'},
  getpocket: {key:'...', callback:'/getpocket_callback'}
}

var Grant = require('grant-express')
  , grant = new Grant(options)

var app = express()
app.use(session({secret:'very secret'}))
app.use(grant)

app.get('/getpocket_callback', function (req, res) {
  console.log(req.query)
  res.end(JSON.stringify(req.query, null, 2))
})

app.listen(3000, function () {
  console.log('Express server listening on port ' + 3000)
})

}

Чистейшая

Затем вы можете использовать Purest для отправки запросов в REST API Pocket.

var getpocket = new Purest({provider: 'getpocket'})
getpocket.query()
  .post('get')
  .auth('[API_KEY]', '[ACCESS_TOKEN]')
  .request(function (err, res, body) {
    // body is the parsed JSON response
  })

Для тех, кто читает это в 2021 году или позже и хочет создать простой скрипт для добавления статей в свой карман, я придумал следующее:

1. Получите свой потребительский ключ на сайте pocket .

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

3: Используйте следующий код, чтобы добавить статью:

      var request = require('request');

request.post({
        url: 'https://getpocket.com/v3/add',
        form: {
            url: 'https://articleToAdd.com',
            consumer_key: '123456-12abcd1234a1ab12a12abc12',
            access_token: '12345a1a-1ab1-1a12-12a1-1a1234'
        }
    },
    function(err, httpResponse, body) { console.log(httpResponse.body) }
)

Надеюсь, это поможет кому-то, кто хочет сделать то же самое. Получение / изменение статей аналогично, подробности можно найти здесь .

Другие вопросы по тегам