在没有库的情况下连接到谷歌 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

我还尝试了无数其他参数、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 。我为此使用了卷曲。

相关内容

  • 没有找到相关文章

最新更新