Google Identity平台:无法将授权代码用于刷新和访问令牌



我正在尝试访问Google Drive API,并且阅读了文档。我的iOS应用发送第一个请求以征求端点https://accounts.google.com/o/oauth2/v2/auth。

用户赠款许可。我得到了一个代码。下一步是用于刷新和访问令牌的授权代码。

至于安装的应用程序,我不需要发送客户端秘密。为了做到这一点,iOS应用将发布请求发送到端点:

https://www.googleapis.com/oauth2/v4/token

带标头:

Content-Type : application/x-www-form-urlencoded

身体:

code={CODE_FROM_OAUTH_SERVER}&client_id={CLIENT_ID_FROM_CONSOLE}&redirect_uri={APP_BUNDLE_IDENTIFIER}:/code&grant_type=authorization_code

我得到响应:

{
  "error": "unsupported_grant_type",
  "error_description": "Invalid grant_type: "
}

应用程序在Google Console中注册。

我的问题是我做错了什么?

它将在 post 请求中发送指定的数据到HTTP服务器,就像当我们填写HTML表单并提交时浏览器时一样。这将导致使用内容类型application/x-www-form-urlencoded将数据传递到服务器。

您应该通过更改通过OAuth参数(例如client_idredirect_urigrant_type等(的方式尝试尝试。

或应该尝试成为默认类型的本地客户端。

解析错误的一种可能来源是redirect_uri。它应该进行URL编码。

相关内容

最新更新