2017-08-08 27 views
0

我正在嘗試爲緩衝區(社交媒體調度應用程序)授權API。我在這裏的操作說明https://buffer.com/developers/api/oauth使用Python進行緩衝區API認證

授權的第一步,使用類型的請求,將用戶重定向到授權頁面:

GET https://bufferapp.com/oauth2/authorize? 
    client_id=...& 
    redirect_uri=...& 
    response_type=code 

一旦授權頁面重定向到與該REDIRECT_URI授權碼作爲查詢參數:

http://example.com/back?code=1/mWot20jTwojsd00jFlaaR45 

即代碼隨後在POST請求被用來獲得一個訪問令牌:

POST https://api.bufferapp.com/1/oauth2/token.json 

POST Data 
    client_id=...& 
    client_secret=...& 
    redirect_uri=...& 
    code=...& 
    grant_type=authorization_code 

但是,授權碼的有效期爲30秒。

當我這樣做的授權手動,然後用我收到像這樣的AUTH_CODE POST請求:

my_data = { 
    'client_id': my_client_id, 
    'client_secret': my_client_secret, 
    'redirect_uri': my_redirect_uri, 
    'code': auth_code, 
    'grant_type': 'authorization_code', 
} 

token = requests.post('https://api.bufferapp.com/1/oauth2/token.json', data=my_data) 

我得到一個「無效批」的錯誤。

我查了一下與其他API有關的錯誤(緩衝區API似乎沒有被使用太多),其中一個原因可能是過期的auth_code。鑑於保質期短,這並不令人意外。

什麼是自動化授權位以避免auth_code過期的好方法?

還是別的我在這裏做錯了嗎?

提前感謝您的幫助

回答

0

緩衝區是一個OAuth 2.0提供者。

您必須使用OAuth的2工作流程,瞭解

請求-OAuthlib:OAuth 2 Workflow

以下部分提供演示一些可能的OAuth2的流程,你可以使用一些示例代碼與請求oauthlib。我們提供了四個示例:一個用於由OAuth2 RFC定義的每個授權類型。這些授權類型(或工作流程)是授權代碼授權(或Web應用程序流程),隱式授權(或移動應用程序流程),資源所有者密碼憑證授權(或更簡潔地說,傳統應用程序流程)以及客戶端憑證授權(或後端應用程序流程)。

+0

非常感謝,我會試試這個 – Panos