微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 向Github API发出Post请求以创建问题不起作用

在过去的几天里,我一直试图向 github api提出这个帖子请求,但不幸的是,回复是“坏消息”

这是我们在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尝试了同样的东西,似乎工作正常并返回正确的响应.希望有人可以在上面的代码中找到导致此错误消息错误的次要错误.

解决方法

除了在您发布的片段中未定义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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐