过去几天我一直试图向github api发送这个帖子请求,但不幸的是,响应又回来了#34;坏消息"
这是我们在post请求中使用节点中的https请求发送的代码 -
这是发布数据
var issueData = JSON.stringify({
"title":title,
"body":comment
});
这是选项文件
var options = {
host: 'api.github.com',
path: '/repos/sohilpandya/katasohil/issues?access_token='+sessions.token,
headers: {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0',
},
method: 'POST'
};
这是https请求
var requestaddIssue = https.request(options, function(responseFromIssues){
responseFromIssues.setEncoding('utf8');
responseFromIssues.on('data', function(chunk){
console.log('>>>>chunk>>>>>',chunk);
issueBody += chunk;
});
responseFromIssues.on('end',function(issueBody){
console.log(issueBody);
});
});
requestaddIssue.write(issueData);
requestaddIssue.end();
我尝试了另一种方法,其中用户的身份验证令牌位于标题中
'Authentication': 'OAuth '+ sessions.token (where we are storing token inside sessions)
但是块响应似乎总是在控制台日志中返回以下内容。
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3/issues/#create-an-issue"
}
我在apigee尝试过相同的操作,似乎工作正常并返回正确的响应。希望有人可以在上面的代码中找到导致此错误消息错误的次要错误。
答案 0 :(得分:4)
除了在您发布的代码段中未定义issueBody
变量之外,代码是正确的。我使用personal access token尝试了它。
出现的错误是因为您需要添加一个scope来解决问题。
我尝试了repo
和public_repo
范围,但它们都在运行。请注意repo
可以访问私有存储库。在这里,您可以看到list of scopes。
如果你正在使用OAuth,那么你应该有一个这样的网址:
https://github.com/login/oauth/authorize?client_id=<client-id>&scope=public_repo&redirect_uri=<redirect-uri>