2016-03-02 8 views
0

Мне удалось предоставить доступ от пользователя, чтобы получить access_token по мере необходимости до retrieve the data from the Angellist API.Простой HTTPS GET из API AngelList с помощью NodeJS и запроса

Следующим шагом является выборка пользовательских данных. Как мы можем прочитать из Angellist API, это можно сделать, прошедших проверку подлинности запросов HTTPS GET:

Use the Token

Any requests that require authentication must be made using HTTPS, with the access token provided in the HTTP Authorization header, request body or query string. AngelList only supports Bearer tokens, as defined in http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-08 . An example using the query string:

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 или что-то в этом роде, т. Е. Это не токен-носитель?

+0

Вы пытались использовать api в почтальоне или другом клиенте? –

+0

Возвращает ту же ошибку при отправке запроса через URL-адрес. Не знаете, как добавить токены-носители с Postman? – JohnAndrews

+0

Хорошо, я добавил в Postman заголовок: Авторизация со значением «Bearer 12345token», и она вернула ту же ошибку. – JohnAndrews

ответ

1

Вы можете попробовать отправить запрос следующим образом:

 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... 
+0

Спасибо. Дает ошибку 502: s – JohnAndrews

+0

попробуйте удалить access_token из url. –

+0

Это сработало, но оно вернуло ту же ошибку: «Аутентифицированный пользователь не авторизовался для этого запроса». – JohnAndrews

0

Я обнаружил, что при попытке войти в систему с другой AngelList счет, то он работает. Учетная запись, которую я пробовал раньше, была такой же, как на которой я зарегистрировал клиентское приложение. Не уверен, почему это имеет значение, но оно работает.