连接到没有库的谷歌api

时间:2014-01-14 08:21:10

标签: oauth-2.0 google-api google-calendar-api

我想使用Google Calendar API。为此,我需要一个授权令牌,我想使用简单的http请求获取。所以,我一直在关注这个:https://developers.google.com/accounts/docs/OAuth2InstalledApp#formingtheurl

我尝试以下请求:

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

我还尝试了无数其他参数,网址,请求方法和发送请求的不同应用程序,但是,我总是得到相同的结果。此外,我还试图在谷歌控制台中重新创建新项目和新客户ID,但这似乎也没有帮助。

我可能只是做了一些根本性的错误,idk,文档似乎有点不清楚。

1 个答案:

答案 0 :(得分: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