我需要从我的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访问我自己的数据即可在我的网站上共享。

我了解我将需要以某种方式进行身份验证,以便可以访问我的数据,但是我是否需要经过oAuth处理才能获得所需的信息?

最佳答案

看来它们仅支持3条腿的OAuth流。您可以在NodeJS应用程序中使用Grant,或仅从here获取访问令牌。

格兰特


将以下示例保存到文件中
在此处设置密钥: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向Pocket的REST API发出请求。

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
  })

关于node.js - 从Pocket API(oAuth)检索数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32986314/

10-10 15:33