2017-02-12 106 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

相关问题