我想从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
};
但是当我输入我的令牌时,我只能得到我的用户信息。 任何想法我做错了什么或更好的主意将不胜感激
答案 0 :(得分:3)
The Github API requires requests to have a valid User-Agent
header:
如果您提供无效的User-Agent标头,您将收到403 禁止回应。
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));
});