编程语言
首页 > 编程语言> > 使用javascript / node js获取用户的所有公共github repostories

使用javascript / node js获取用户的所有公共github repostories

作者:互联网

我想从github获取给定用户的所有公共github存储库.
我尝试使用GET请求I read from here进行设置.当我使用curl或在浏览器中进行尝试时,一切都很好,但是当我运行此代码时,它给了我http 403状态代码

var request = require('request');

request.get("https://api.github.com/users/:user")
    .on('response', function (response) {
        console.log(response.statusCode);
        console.log(JSON.stringify(response));
    });

我尝试使用此github api library,但无法通过身份验证

var GithubApi = require("github");

var github = new GithubApi({});


github.authenticate({
    type: "oauth",
    token: "GIT_TOKEN"
});

var getUsersRepos = function (user) {
    github.repos.getAll({
        username: user
    }, function (err, res) {
        res.forEach(function (element) {
            console.log(`${element.name} - language: ${element.language} - issues: ${element.open_issues} - url: ${element.url}`);
        }, this);
    });
}

module.exports = {
    getRepos: getUsersRepos
};

但是,当我输入令牌时,我只能获得我的用户信息.
任何想法我做错了或更好的想法将不胜感激

解决方法:

The Github API requires requests to have a valid User-Agent header

If you provide an invalid User-Agent header, you will receive a 403
Forbidden response.

Github要求您使用GitHub用户名或应用程序名称作为User-Agent标头值:

var request = require('request');

options =  {
    url: "https://api.github.com/users/:user",
    headers: {
        "User-Agent": "tabula"  // Your Github ID or application name
    }
}

request.get(options)
    .on('response', function (response) {
        console.log(response.statusCode);
        console.log(JSON.stringify(response));
    });

标签:node-js,github,github-api,javascript
来源: https://codeday.me/bug/20191112/2024346.html