由于我没有找到任何有同样问题的人,我希望这是一件简单的事情。而且我还不错。
这是一个Node / Express应用程序,我正在尝试连接到Githubs Web API并检索某个回购的问题。我已经生成了一个个人令牌,我正在使用它进行基本授权。当我尝试连接时,我得到:“ Not found ”。 Github说,在需要身份验证的情况下,他们返回404/403,我得到404,所以它必须是身份验证的东西。回购有问题。
令牌应该没有问题,我选择“repo”作为访问范围。
实际上我不知道我在做什么做HTTP请求,但我已经尝试过请求和http。所以除其他事项外,我想知道是否有授权标题是错误的。
我使用请求粘贴我现在拥有的代码,并返回正文。非常感谢任何帮助。
const githubToken = process.env.TOKEN;
let options = {
url: "https://api.github.com/repos/myOrg/myRepo/issues/",
headers: {
"Authorization": "Basic " + githubToken,
"User-Agent": "Mozilla/5.0",
"Content-Type": "application/json"
}
};
let requestCB = function(error, response, body) {
if (error) {
console.log(error);
} else if (!error && response.statusCode == 200) {
let info = JSON.parse(body);
console.log("Success");
console.log(info);
} else {
console.log(response);
console.log(body);
}
};
request(options, requestCB);
响应的结束和身体:
read: [Function],
body: '{"message":"Not Found","documentation_url":"https://developer.github.com/v3"}' }
{"message":"Not Found","documentation_url":"https://developer.github.com/v3"}
编辑:
所以我找到了帮助,在下面发布解决方案。我想问题是必须包含accept-header。也许主机名,路径和uri必须采用这种格式。
let options = {
headers: {
"User-Agent": "GitHub-username",
"Accept": "application/vnd.github.v3+json",
"Authorization": "token " + githubToken
},
hostname: "api.github.com",
path: "/repos/org/repo/issues",
uri: "https://api.github.com/repos/org/repo/issues",
method: "GET"
};
答案 0 :(得分:1)
基本身份验证不需要令牌
curl -u "username" https://api.github.com
因此,在您的请求中,您可以省略githubToken
请参阅docs for more information about types of authentication
var request = require('request');
var options = {
url: 'https://api.github.com/?access_token=OAUTH-TOKEN',
headers: {
"Authorization": "token ",
"User-Agent": "Mozilla/5.0",
"Content-Type": "application/json"
}
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
请求(选项,回调);