向Github API发送Post请求以创build问题不起作用
在过去的几天里,我一直在尝试向github api发出这个请求,但不幸的是,这个响应回来的时候是“坏消息”
这里是我们在发送请求中使用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();
我已经尝试了另一种方法,其中用户的身份validation令牌位于标头中
'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中尝试过,似乎工作正常,并返回正确的响应。 希望有人可以在上面的代码中find导致这个错误消息错误的小错误。
除了您发布的代码片段中未定义issueBody
variables,代码是正确的。 我尝试使用个人访问令牌 。
出现错误是因为您需要添加一个能够打开问题的范围 。
我试过repo
和public_repo
范围,他们都在工作。 请注意, repo
有权访问私人存储库。 在这里你可以看到范围列表 。
如果您使用OAuth,那么您应该有一个像这样的url:
https://github.com/login/oauth/authorize?client_id=<client-id>&scope=public_repo&redirect_uri=<redirect-uri>