2015-10-28 29 views
8

过去几天我一直试图向github API发出这个帖子请求,但不幸的是响应回来了,因为“坏消息”向Github API发出发布请求以创建问题不起作用

这里是我们发送的使用HTTPS POST请求的代码段要求在节点 -

这是后数据

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

你接受过这与任何其他请求工作?还有,你有没有考虑过使用模块来创建请求,如[请求](https://www.npmjs.com/package/request),甚至只是使用[node-github](https://github.com/mikedeboer/ node-github)? – grimurd

+0

@GrimurD我得到它与获取请求一起检索一些用户数据。通常我会使用请求模块,但试图将其分解以查找错误。 –

+0

您应该使用[fiddler](http://www.telerik.com/fiddler)之类的东西记录传出的请求,以确保请求看起来正确。由于你要回404,所以请求中有一些错误。 – grimurd

回答

3

除了您发布的代码段中没有定义issueBody变量,代码是正确的。我试过用personal access token

出现您遇到的错误,因为您需要添加scope才能打开问题。

我试过repopublic_repo范围,他们都工作。请注意,repo可以访问私有存储库。在这里你可以看到list of scopes

如果你正在使用OAuth,那么你应该有一个URL看起来像这样:

https://github.com/login/oauth/authorize?client_id=<client-id>&scope=public_repo&redirect_uri=<redirect-uri>

+0

谢谢!似乎是在添加范围后才开始工作。 :) –

+0

@SohilPandya不客气! :) –