我想使用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
我还尝试了无数其他参数、URL、请求方法和不同的应用程序来发送请求,但是,我总是得到相同的结果。此外,我还尝试在谷歌控制台中重新创建新项目和新客户ID,但这似乎也无济于事。
我可能只是犯了一些根本性错误,idk,文档似乎有些不清楚。
好的,您的请求没有任何意义。这是用户(客户端)请求(获取授权代码)和请求(从Google(提供商)获取访问令牌的混合
。我试图解释,你必须做什么:
- 首先,让用户向服务器发送 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
- 如果这成功了,你会得到这样的东西:
杰森:
{
"access_token":"1/fFAGRNJru1FTz70BzhT3Zg",
"expires_in":3920,
"token_type":"Bearer",
"refresh_token":"1/xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI"
}
一个好地方,看看你能做什么,看看谷歌OAuth 2.0游乐场。
Jan 的方法工作正常,谢谢!要完成答案,应将 POST 请求发送到 https://oauth2.googleapis.com/token 。我为此使用了卷曲。