我想使用Bitbucket的Rest API並啓用Bitbucket的雙因素身份驗證,因此我可以通過終端使用curl管理我的帳戶。以前,我在沒有2FA的情況下進行REST API調用,現在我想進行這種轉換。使用雙因素身份驗證的Bitbucket API
啓用2FA後,您需要使用OAuth 2.0協議進行API調用;而不是您在Bitbucket site上找到的標準REST API調用。
現在,我在Bitbucket網站上創建了一個所謂的消費者。這會生成一個密鑰和一個祕密。
我被卡住的部分在下面。有了這個密鑰和祕密,你可以通過
https://bitbucket.org/site/oauth2/authorize?client_id={client_id}&response_type=code
獲得所謂的訪問令牌(這一個小時後失效),您可以通過一個curl命令
$ curl -X POST -u "client_id:secret" \ https://bitbucket.org/site/oauth2/access_token \ -d grant_type=authorization_code -d code={code}
做。
我不知道如何獲得這個訪問令牌;即從調用curl命令到將其放在Bash變量中的步驟。
一旦我們獲得了我們的訪問令牌,我們就可以根據Bitbucket documentation將它包含在我們的curl命令中來製作API請求。我相信,像,
curl -u "client_id:secret" https://api.bitbucket.org/2.0/[API Request] --data-urlencode "access_token=$[Access_token]" --data "[api_request_data]=[Api_request_data]"
,其中$[Access_token]
是我們的Bash變量保存我們的未過期的訪問令牌。
我想在Bash中創建兩個函數:一個獲取訪問令牌;和一個刷新訪問令牌。還是有更簡單的方法?
無論如何,有關如何在啓用2FA的情況下進行REST API調用的簡要說明,我們將不勝感激。
首先你需要獲得臨時代碼。您將把用戶重定向到您擁有的第一個URL,並傳遞您的client_id。然後在**回調**中,您需要提取代碼(臨時代碼)。之後,您可以請求傳遞client_id,secret和臨時代碼的訪問令牌,並使用您提到的CURL執行請求。在響應中將包括您應該保存的訪問令牌以請求您需要的信息。 – Hosar