2014-01-14 53 views
1

我想使用谷歌日曆API。爲此,我需要一個授權令牌,我想使用簡單的http請求獲取授權令牌。所以,我一直跟着:https://developers.google.com/accounts/docs/OAuth2InstalledApp#formingtheurl連接到谷歌API沒有庫房

我嘗試以下要求:

POST https://accounts.google.com/o/oauth2/auth 

grant_type: authorization_code 
scope: https://www.googleapis.com/auth/calendar 
response_type: code 
redirect_uri: http://localhost:1337 
client_id: id 

然而,從這個請求我得到的迴應:

Error:invalid_request 
Required parameter is missing: response_type 

我也嘗試過無數的其他參數,網址,請求方法和不同的應用程序發送請求,但是,我總是得到相同的結果。此外,我還嘗試在Google控制檯中重新創建新項目和新客戶ID,但這似乎也沒有幫助。

我可能只是做了一些根本性的錯誤,idk,文檔似乎有點不清楚。

回答

0

好的,你的請求沒有任何意義。這是用戶(客戶端)請求的混合,爲您提供授權代碼和向您(服務器)獲取來自Google(提供商)的訪問令牌的請求。

我試圖解釋,你必須做什麼:

  • 首先,用戶發送GET請求到服務器,像這樣的:

GET:

https://accounts.google.com/o/oauth2/auth?scope={YOUR_SCOPES_URL_ESCAPED}&redirect_uri={YOUR_REDIRECT_URI_URL_ESCAPED}&response_type=code&client_id={YOUR_CLIENT_ID} 
  • 您發送POST請求:

請求:

POST /o/oauth2/token HTTP/1.1 
Host: accounts.google.com 
Content-Type: application/x-www-form-urlencoded 

code={YOUR_RETURNED_CODE_FROM_FIRST_REQUEST}& 
client_id={YOUR_CLIENT_ID}& 
client_secret={YOUR_CLIENT_SECRET}& 
redirect_uri=https://oauth2-login-demo.appspot.com/code& 
grant_type=authorization_code 
  • 如果有成功,你得到這樣的結果:

JSON:

{ 
    "access_token":"1/fFAGRNJru1FTz70BzhT3Zg", 
    "expires_in":3920, 
    "token_type":"Bearer", 
    "refresh_token":"1/xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" 
} 

的好地方,看到什麼你可以做,看看Google OAuth 2.0 Playground