簡體   English   中英

POST請求到GitHub API

[英]POST request to GitHub API

我在使用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"}
      }
    })

我正在使用從GitHub API注冊應用程序時獲得的客戶端ID和客戶端密碼:

在此處輸入圖片說明

任何幫助將不勝感激! 謝謝!

我想您需要訪問令牌才能訪問Github API。 如果您想手動嘗試,這是我的建議步驟。 我將嘗試從第一步開始進行解釋。


  1. 注冊您的應用。

    在您的github帳戶上,轉到settings -> OAuth Applications

    這是您注冊應用程序時的圖像


  1. 獲取客戶端ID和客戶端密鑰。

    這是收到客戶端ID和客戶端密鑰后的圖像


  1. 要求Github代碼

    現在您有了Client ID 轉到此URL。

    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。

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

要實現您想要的目標,您必須實現此處描述的Web應用程序流程。

這意味着您必須將用戶重定向到https://github.com/login/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI以便他可以登錄GitHub並授權您的應用程序。 成功登錄后,GitHub會將您重定向到redirect_uri ,該地址通常指向應用程序的端點。 該端點從URI中提取授權代碼,以使用GitHub向GitHub請求訪問令牌(請參閱此處 )。 擁有訪問令牌后,您可以通過在Authorization標頭中發送OAuth令牌來使用GitHub API,如下所示。

Authorization: token OAUTH-TOKEN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM