2015-10-28 23 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不客氣! :) –