我无法使用JavaScript获取方法向GitHub API发出POST请求:
fetch('https://api.github.com/repos/organization/repo/issues?client_id=CLIENT_ID&client_secret=CLIENT_SECRET', {
method: 'post',
body: {
title: 'Title',
body: {body: "body", title: "title"}
}
})
我使用的客户端ID和客户端密码是我通过GitHub API注册应用程序时获得的:
任何帮助将不胜感激!谢谢!
答案 0 :(得分:2)
我猜你需要访问令牌才能访问Github API。如果您想在此处手动尝试我的建议步骤。 我会尝试从第一步开始解释。
注册您的应用。
在您的github帐户中,转到settings -> OAuth Applications
获取客户端ID和客户端密钥。
This is the image after you receive Client ID and Client Secret
询问Github代码
现在你有Client ID
。转到此网址。
https://github.com/login/oauth/authorize?client_id=b420627027b59e773f4f&scope=user:email,repo
请定义您自己的client_id
和scope
。
获取Github代码
还记得注册时输入的授权回调URL吗? 转到上面的链接后,您应该已将重定向到您的回调URL,并将代码作为参数。
例如http://localhost:8080/github/callback?code=ada5003057740988d8b1
询问并获取访问令牌
现在您需要使用Client ID
,Client Secret
和Code
作为参数进行http请求发布。
请求强>
POST https://github.com/login/oauth/access_token?client_id=a989cd9e8f0137ca6c29&client_secret=307d18600457b8d9eec1efeccee79e34c603c54b&code=ada5003057740988d8b1
<强>响应强>
access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&token_type=bearer
向Github发布问题
现在您可以access token
使用它来访问Github API。
fetch('https://api.github.com/repos/organization/repo/issues?access_token=e72e16c7e42f292c6912e7710c838347ae178b4a', {
method: 'post',
body: {
title: 'Title',
body: {body: "body", title: "title"}
}
})
&#13;
答案 1 :(得分:1)
要实现您的目标,您必须实现here所述的Web应用程序流程。
这意味着您必须将用户重定向到https://github.com/login/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI
,以便他可以登录GitHub并授权您的应用程序。成功登录后,GitHub会将您重定向到redirect_uri
,Authorization
通常指向应用程序的端点。此端点从URI中提取授权代码,以便从GitHub中请求访问令牌(请参阅here)。只要您拥有访问令牌,就可以通过在Authorization: token OAUTH-TOKEN
标头中发送OAuth令牌来使用GitHub API,如下所示。
xcode-select --install