22

我正在根据此网页创建和授权 OAuth 令牌:https ://code.google.com/p/google-mail-oauth2-tools/wiki/OAuth2DotPyRunThrough

但我收到了这个错误:redirect_uri_mismatch。

The redirect URI in the request: urn:ietf:wg:oauth:2.0:oob did not match a registered redirect URI
from_login=1
cookie_policy_enforce=false
scope=https://mail.google.com/
response_type=code
access_type=online
redirect_uri=urn:ietf:wg:oauth:2.0:oob
as=-80019291b2cb8ed
display=page
pli=1
client_id=......
authuser=0
hl=en

我认为这可能会有所帮助:Google OAuth 2 授权 - 错误:redirect_uri_mismatch

但是当我尝试将重定向 url 注册到我的控制台时,我被告知该 url 无效。

4

12 回答 12

50

redirect_uri (urn:ietf:wg:oauth:2.0:oob) 仅适用于为已安装应用程序生成的那些 Google 客户端 ID 。您可以转到控制台并创建此类型的新客户端 ID。

于 2013-07-31T16:45:53.973 回答
31

以防万一,如果您使用的是Google+ javascript 按钮(带有网络应用程序),则必须输入postmessage而不是实际的 URI。我几乎花了一整天的时间才弄清楚这一点,因为谷歌文档出于某种原因并没有明确地支持它。

于 2013-09-24T19:23:29.357 回答
9

对于我的网络应用程序,我通过编写纠正了我的错误

instead of : http://localhost:11472/authorize/
type :      http://localhost/authorize/
于 2014-10-19T07:04:52.397 回答
7

当您注册您的应用程序https://code.google.com/apis/console并创建一个客户端 ID 时,您有机会指定一个或多个重定向 URI。auth URI 上的参数值redirect_uri必须与其中之一完全匹配。

于 2013-08-21T13:54:45.047 回答
7

请注意,令牌请求的“redirect_uri”值需要与授权请求的“redirect_uri”值相同。

于 2015-03-30T01:06:34.663 回答
4

失去了 4 或 5 个小时...使用 'postmessage' 作为参数值,而不是真正的重定向 Uri ...

$client->setRedirectUri('postmessage');
于 2015-10-14T08:01:18.267 回答
3

对于仍然被此问题困扰的任何人,在 Google Cloud Console 中注册您的应用程序时,您必须将“平台”设置为“本机(Windows Mobile、Blackberry、桌面、设备等)”,否则将不会让您使用 'urn:ietf:wg:oauth:2.0:oob' 作为重定向 URI。

于 2013-11-12T22:08:27.333 回答
3

就我而言,我没有创建 Web 应用程序,而是选择了“OAuth Client ID”>“Other”中的“Other”

就是这样。

于 2016-02-19T16:21:18.760 回答
1

2015July15 - 工作登录开始导致错误 400Error: redirect_uri_mismatch

我在类似的 SO QUESTION 上发布了一个解决方案:将加载脚本更改为

<script src="https://apis.google.com/js/client:platform.js?onload=startApp></script>
于 2015-07-15T16:46:00.530 回答
0

对于我的原生应用,我尝试了几十种不同的东西。我终于通过使用“redirect_uri=http%3A%2F%2Flocalhost%3A1234”让它工作,其中 1234 是端口号。这在两个请求(授权码和访问令牌)中必须相同。注意百分比编码的使用。

于 2019-12-19T00:55:25.787 回答
0

我收到此错误,因为我在此处错误地遵循了安装应用程序流程的步骤

https://github.com/googleads/googleads-python-lib/wiki

而不是服务器到服务器流

于 2020-11-04T07:24:03.437 回答
0

最简单的方法是创建服务帐户。

使用您自己的帐户创建文档并与服务帐户共享。

于 2021-01-13T06:32:25.377 回答