使用NodeJS和Request从AngelList API进行简单的HTTPS GET

时间:2016-03-02 12:45:56

标签: node.js oauth https httprequest bearer-token

我已设法授予用户访问权限,从而根据需要access_token获取retrieve the data from the Angellist API

下一步是获取用户数据。我们可以从Angellist API中读取,您可以通过经过身份验证的HTTPS GET请求来执行此操作:

  

使用令牌

     

必须进行任何需要身份验证的请求   使用HTTPS,使用HTTP授权中提供的访问令牌   标头,请求正文或查询字符串。 AngelList仅支持Bearer   令牌,如   http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-08。一个例子   使用查询字符串:

GET https://api.angel.co/1/me?
    access_token=...

要在NodeJS中发出请求,我使用npm包request,如下所示:

function testRequest(access_token) {

        console.log('test request');
        var urltest = "https://api.angel.co/1/me?access_token=" + access_token;

        request.get(urltest,
            {
              'auth': {
                'bearer': access_token
              }
            },
          function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    console.log('body', body)
                }
                console.log('body', body)
                console.log('error', error)
            }
        );
};

然而,我一直收到错误:

body {"success":false,"error":{"type":"unauthorized","message":"The authenticated user is not authorized for this request."}}

我做错了什么? access_token是否需要转换或者某种东西,即它不是持有人令牌?

2 个答案:

答案 0 :(得分:0)

您可以尝试按如下方式发送请求:

        var optionsGetUserInfo = {
            method: 'GET',
            url: "https://api.angel.co/1/me?access_token=" + access_token",
            headers: {
                'Authorization': 'Bearer ' + access_token
                'Accept' : 'application/json',
                'Content-Type' : 'application/json'
            }
        }

request(optionsGetUserInfo, function (error, response, body) {
                    if (!error && response.statusCode == 200) {
                        etc...

答案 1 :(得分:0)

我发现当尝试使用另一个AngelList帐户登录时,它可以运行。我之前尝试过的帐户与我注册客户端应用程序的帐户相同。不知道为什么会有所作为,但它确实有效。