Не получаю данные GITHUB API, используя синхронный запрос модуля npm - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь получить данные, указанные ниже, с помощью модуля sync-request.

https://api.github.com/repos/rethinkdb/rethinkdb/stargazers

Я получаю данные, когда звоню в браузере или через почтальона.
Но я получаю 403 запрещенныхошибка при вызове с использованием sync-запроса в моем узле api.

Мой код выглядит следующим образом.

 var request = require("sync-request");

 var response = request('GET', 'https://api.github.com/repos/rethinkdb/rethinkdb/stargazers', {
                headers: {},
                json: true
            });

Я могу получить данные многих других API, но не этот.Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Попробуйте использовать токен доступа вместе с вызовом API GitHub, как этот

[https://api.github.com/repos/rethinkdb/rethinkdb/stargazers?access_token=f33d1f112b7883456c990028539a22143243aea9]

Поскольку вы говорите, что API работает в браузере, он не должен бытьпроблема.

Когда вы используете слишком много вызовов через GitHub API, они выдают следующее сообщение

{ "message": "API rate limit exceeded for 192.248.24.50. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)", "documentation_url": "https://developer.github.com/v3/#rate-limiting" }

Чтобы преодолеть эту проблему, вы можете использовать токен доступа, используятокен доступа, который вы также можете использовать для доступа к личным репозиториям в вашей учетной записи.Вот ссылка для получения токена доступа [https://github.com/settings/developers]

0 голосов
/ 22 октября 2018

В теле ответа уже содержится объяснение:

Запрос запрещен административными правилами.Убедитесь, что в вашем запросе есть заголовок User-Agent (http://developer.github.com/v3/#user-agent-required). Проверьте https://developer.github.com для других возможных причин.

Он будет работать следующим образом:

var response = request('GET', 'https://api.github.com/repos/rethinkdb/rethinkdb/stargazers', {
    headers: { 'User-Agent': 'Request' },
    json: true
});

Настоятельно не рекомендуется использовать sync-request, поскольку синхронность достигается с помощью хака и может блокировать процесс на длительное время.

Для последовательного выполнения request-promise может использоваться вместе с async..await.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...