在验证用户身份后,实时服务器中出现“重定向URI不匹配”错误 - Google Calendar API + php

时间:2018-01-30 06:08:18

标签: php google-api google-calendar-api google-api-php-client

我正在使用Google日历API(PHP)。一切都在测试服务器(不同的服务器)中完美运行。但是当我将更新移动到实时时,我得到以下代码的响应:

$accessToken = $google_client->fetchAccessTokenWithAuthCode($authCode);
print_r($accessToken);

显示以下输出:

Array
(
    [error] => redirect_uri_mismatch
    [error_description] => Bad Request
)

每条信息都是正确的,并经过两次验证,google控制台中提供redirectURI,json文件中为redirectURIs。 应用程序成功验证用户并重定向到指定的重定向URI,然后显示上述错误。有人遇到过这样的问题吗?

实时应用程序属于以下子域: abc.def.example.com

所以我提供了重定向URI为

http://abc.def.example.com/en/add_to_google_calendar_auth 

测试服务器没有子域,所以我使用的重定向URI是:

http://mydemoserver.com/en/add_to_google_calendar_auth

没有其他重大更改。这些URI中的任何一个都已添加到控制台&尊敬的json。与演示服务器完美配合。

我检查了有关我的问题的SO和其他在线资源中的所有问题,但没有一个解决了我的问题。

1 个答案:

答案 0 :(得分:0)

重定向URI是将响应返回给应用程序的位置。它需要在Google开发人员控制台中正确注册,错误表明您没有这样做,或者没有正确完成。

转到项目的控制台,查看API Access。您应该会看到您的客户ID和那里的秘密,以及重定向URI列表。如果未列出所需的URI,请单击编辑设置并将URI添加到列表中。

检查您遇到的错误应该有一个下拉列表(请求详细信息),显示您正在做的请求到底是什么以及您要发送的重定向URI。请记住,如果您使用的是客户端库,则他们倾向于将重定向uri从当前文件位置构建,而不是使用凭证文件以方便使用。 但如果您使用图书馆这样做,那么您还没有精神错乱。所以我无法确定。

enter image description here

  

授权重定向URI   用于来自Web服务器的请求。这是用户在使用Google进行身份验证后重定向到的应用程序中的路径。该路径将附加用于访问的授权代码。 必须拥有协议。不能包含网址片段或相对路径。不能是公共IP地址。