2017-04-19 29 views
0

「失敗的授權」繼OAuth的流程記錄here我似乎做的一切權利,仍然可以得到以下JSON響應:Pinterest上的OAuth流

{'generated_at': 'Wed, 19 Apr 2017 12:47:47 +0000', 'host': 'devplatform-devapi-prod-0a016efb', 'code': 3, 'status': 'failure', 'message': 'Authorization failed.', 'data': None}

我見過this一篇關於同一問題,但我正在使用更新的文檔,並且所有內容似乎都是正確的。

我似乎正在做第一步好的,因爲我找回了包括由API返回的代碼的有效響應。

問題是在第二個電話,我試圖爲輔幣的代碼發生 - 那麼就是失敗

我的第二個電話是這樣的:

self.API_BASE = 'https://api.pinterest.com/v1/' 
. 
. 
. 
code = request.GET['code'] 
. 
. 
. 
url = '{base}oauth/token'.format(base=self.API_BASE) 
data = {'grant_type': 'authorization_code', 
     'client_id': self.client_id, 
     'client_secret': self.client_secret, 
     'code': code} 

response = requests.post(url, data=data).json() 

導致響應我發佈在頂部的錯誤

+0

您是如何獲得授權碼的?該文件說*「要獲取您的訪問代碼,請將您的用戶指向https://api.pinterest.com/oauth/"*您的代碼中沒有任何地方是爲用戶打開一個webbrowser。 –

+0

我不想做一個很長的帖子,顯然我得到的代碼,我也驗證了我收到它 – bluesummers

+0

嘗試'requests.post(url,params = data)' –

回答

0

您可能不會將授權代碼正確傳遞給令牌端點。 這是什麼code = request.GET['code']應該做的?你能打印這樣一個取得code

編輯:從pinterest文檔,他們的令牌端點似乎不符合OAuth 2.0 RFC6749。令牌端點期望它的參數在查詢字符串上傳遞,而RFC聲明它們應該作爲application/x-www-form-urlencoded POST數據傳遞(就像你一樣)。 如此使用requests.post(url, params=data).json()

+0

它的django,我從他們那裏得到的代碼,檢查 – bluesummers

+0

例如,當我現在嘗試時,我得到了'94162c7bc150af5a' – bluesummers