我正在使用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和其他在线资源中的所有问题,但没有一个解决了我的问题。
答案 0 :(得分:0)
重定向URI是将响应返回给应用程序的位置。它需要在Google开发人员控制台中正确注册,错误表明您没有这样做,或者没有正确完成。
转到项目的控制台,查看API Access。您应该会看到您的客户ID和那里的秘密,以及重定向URI列表。如果未列出所需的URI,请单击编辑设置并将URI添加到列表中。
检查您遇到的错误应该有一个下拉列表(请求详细信息),显示您正在做的请求到底是什么以及您要发送的重定向URI。请记住,如果您使用的是客户端库,则他们倾向于将重定向uri从当前文件位置构建,而不是使用凭证文件以方便使用。 但如果您使用图书馆这样做,那么您还没有精神错乱。所以我无法确定。
授权重定向URI 用于来自Web服务器的请求。这是用户在使用Google进行身份验证后重定向到的应用程序中的路径。该路径将附加用于访问的授权代码。 必须拥有协议。不能包含网址片段或相对路径。不能是公共IP地址。