Получение данных из 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) }
)
Надеюсь, это поможет кому-то, кто хочет сделать то же самое. Получение / изменение статей аналогично, подробности можно найти здесь .