【问题标题】:Getting invalid_client with OAuth2 Drive API使用 OAuth2 Drive API 获取 invalid_client
【发布时间】:2013-11-17 10:02:17
【问题描述】:

我在 Google Cloud Console 中创建了一个项目,并且我很确定我的 AppEngine 项目与它相关联(单击项目中的 AppEngine 链接会显示我的 AppEngine 项目的概览)。

我已上传我的项目以在 appspot.com 上运行。

我已正确复制并粘贴了控制台项目的 OAuth2 客户端密码和 ID,以供 Python 库使用。

我已正确设置同意屏幕。

我已经添加了回调 url。

我已确保相应的 API 已“开启”并变为绿色(Google Drive)。

但我在尝试进行身份验证时仍然收到Error: invalid_client

我错过了什么?

编辑:这是出错的网址

https://accounts.google.com/o/oauth2/auth?state=https%3A%2F%2Fmy-app-id.appspot.com%2Fspreadsheet%2Fview%2F0Ao7HHtqOGzZ7dDNneTg0b1R0bnVJNzRvWk9DVVhIVXc%3A9wi8bS1R7fejjVuDd9IdPjoxMzg0NjgyNDU5&redirect_uri=https%3A%2F%2Fmy-app-id.appspot.com%2Foauth2callback&response_type=code&client_id=abcxyz123.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly&access_type=offline

以及以下文字(带有损坏的机器人的图像):

Request Details
  cookie_policy_enforce=false
  response_type=code
  scope=https://www.googleapis.com/auth/drive.readonly
  redirect_uri=https://my-app-id.appspot.com/oauth2callback
  access_type=offline
  state=https://my-app-id.appspot.com/spreadsheet/view/0Ao7HHtqOGzZ7dDNneTg0b1R0bnVJNzRvWk9DVVhIVXc:9wi8bS1R7fejjVuDd9IdPjoxMzg0NjgyNDU5
  client_id=abcxyz123.apps.googleusercontent.com

【问题讨论】:

  • 你解决了吗?

标签: python google-app-engine oauth-2.0 google-drive-api


【解决方案1】:

您是否启用了 Drive API?如果您使用旧形式的 API 控制台,执行此操作的链接会更加明显(请参阅新 API 控制台页面底部的浅灰色链接)。

否则,如果你照你说的做了,你什么都不会错过。

对于诸如此类的任何 Oauth 问题,将 http 请求和响应粘贴到您的问题中非常有帮助。这个页面告诉你如何做到这一点https://developers.google.com/api-client-library/python/guide/logging

一个非常好的调试技术是将您的代码放在一边并使用 Oauth2 Playground(配置您自己的应用程序凭据)。您可以将来自 Oauth 游乐场的 http 流量与来自您的应用的流量进行比较,然后找出差异。

【讨论】:

  • 谢谢。是的,Drive API 已启用。用更多细节更新了问题。
  • 我从来没有从 Android 编码过 oauth,所以这些 cmets 可能不正确...... (1) 你的状态看起来很奇怪。您是否设置了它,如果是这样,您会忽略它。 (2) 我不确定 access_type=offline 是否适用于 Android。您可以尝试使用 Oauth Playground 进行身份验证并找出差异吗?
  • 啊,这是一个 AppEngine 应用。状态是我的应用程序的 url。尝试发现与 oauth 操场的区别,似乎唯一的区别是操场上没有 state 参数,而我的 approval_prompt 参数丢失了。
  • 我尝试将approval_prompt=force 参数添加到我的网址,但它仍然提供invalid client)
  • 忽略我的“Android”评论。当我同时回答两个问题时会发生这种情况:-)
猜你喜欢
  • 2014-07-09
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 2013-06-14
  • 2018-12-13
  • 1970-01-01
相关资源
最近更新 更多