2017-02-12 111 views
1

我正在GitHub API中試用Webhooks。我手動完成了一項工作,就像進入我的存儲庫並單擊設置並啓用Web鉤子一樣。但現在我想在AJAX中做到這一點,我遇到了問題。任何時候我嘗試發送一個POST到web api,它會以400(錯誤請求)失敗。我不確定我的代碼出錯了。如何使用AJAX在GitHub web API上的存儲庫上創建webhook?

function createWebHooksOnRepos(token){ 
const webhookURL = "https://api.github.com/repos/DanoBuck/AlgorithmsAndDataStructures/hooks"; 

const json = { 
    "name": "WebHook", 
    "active": true, 
    "events": [ 
     "issue_comment", 
     "issues" 
    ], 
    "config": { 
     "url": "http://39a40427.ngrok.io/api/webhooks/incoming/github", 
     "content_type": "json" 
     } 
}; 
$.ajax({ 
    headers: { 
     "Authorization": "Token " + token 
    }, 
    url: webhookURL, 
    data: json, 
    type: "POST", 
    dataType: "json", 
    success: function(data){ 
     console.log(data); 
    } 
}); 

}

謝謝

回答

0

github Webhook API doc

名字 - 字符串 - 必須。使用「web」作爲webhook或使用有效的 服務的名稱。 (對於有效服務名稱的列表,請參閱/hooks

所以你的情況,只需重命名Webhookweb:發送前

const json = { 
    "name": "web", 
    "active": true, 
    "events": [ 
     "issue_comment", 
     "issues" 
    ], 
    "config": { 
     "url": "http://39a40427.ngrok.io/api/webhooks/incoming/github", 
     "content_type": "json" 
     } 
}; 

而且JSON.stringify數據:

$.ajax({ 
    headers: { 
     "Authorization": "Token " + token 
    }, 
    url: webhookURL, 
    data: JSON.stringify(json), 
    type: "POST", 
    dataType: "json", 
    success: function(data) { 
     console.log(data); 
    } 
}); 
+0

仍沒有這個運氣。仍然收到相同的響應「無法加載資源:服務器響應狀態爲400(錯誤請求)」。儘管謝謝你的幫助。 – DanoBuck

+0

您忘記將數據串聯起來,我已更新我的信息 –

+0

數據:JSON.stringify(json), - 該行使其完美工作。非常感謝您的幫助。大大欣賞幫助。 – DanoBuck

相關問題