对GitHub API的POST请求

时间:2017-03-27 12:11:52

标签: javascript api github

我无法使用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注册应用程序时获得的:

enter image description here

任何帮助将不胜感激!谢谢!

2 个答案:

答案 0 :(得分:2)

我猜你需要访问令牌才能访问Github API。如果您想在此处手动尝试我的建议步骤。 我会尝试从第一步开始解释。

  1. 注册您的应用。

    在您的github帐户中,转到settings -> OAuth Applications

    This is the image when you register your application

    1. 获取客户端ID和客户端密钥。

      This is the image after you receive Client ID and Client Secret

      1. 询问Github代码

        现在你有Client ID。转到此网址。

        https://github.com/login/oauth/authorize?client_id=b420627027b59e773f4f&scope=user:email,repo

        请定义您自己的client_idscope

        1. 获取Github代码

          还记得注册时输入的授权回调URL吗? 转到上面的链接后,您应该已将重定向到您的回调URL,并将代码作为参数。

          例如http://localhost:8080/github/callback?code=ada5003057740988d8b1

          1. 询问并获取访问令牌

            现在您需要使用Client IDClient SecretCode作为参数进行http请求发布。

            请求

            POST https://github.com/login/oauth/access_token?client_id=a989cd9e8f0137ca6c29&client_secret=307d18600457b8d9eec1efeccee79e34c603c54b&code=ada5003057740988d8b1

            <强>响应

            access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&token_type=bearer

            1. 向Github发布问题

              现在您可以access token使用它来访问Github API。

            2. &#13;
              &#13;
              fetch('https://api.github.com/repos/organization/repo/issues?access_token=e72e16c7e42f292c6912e7710c838347ae178b4a', {
                    method: 'post',
                    body: {
                      title: 'Title',
                      body: {body: "body", title: "title"}
                    }
                  })
              &#13;
              &#13;
              &#13;

答案 1 :(得分:1)

要实现您的目标,您必须实现here所述的Web应用程序流程。

这意味着您必须将用户重定向到https://github.com/login/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI,以便他可以登录GitHub并授权您的应用程序。成功登录后,GitHub会将您重定向到redirect_uriAuthorization通常指向应用程序的端点。此端点从URI中提取授权代码,以便从GitHub中请求访问令牌(请参阅here)。只要您拥有访问令牌,就可以通过在Authorization: token OAUTH-TOKEN 标头中发送OAuth令牌来使用GitHub API,如下所示。

xcode-select --install