在 Google Play 游戏的服务器授权期间发生 redirect_uri_mismatch 错误

Posted

技术标签:

【中文标题】在 Google Play 游戏的服务器授权期间发生 redirect_uri_mismatch 错误【英文标题】:redirect_uri_mismatch error during server authorization for Google Play Games 【发布时间】:2019-09-17 19:51:04 【问题描述】:

我正在使用 play-games-plugin-for-unity 通过 Google Play Games 对我的 Unity (android) 游戏进行身份验证,并将身份验证代码传递给我的 Python (Flask) 服务器。

虽然客户端代码运行良好,但从我的服务器(我在本地运行)发送身份验证请求时出现redirect_uri_mismatch 错误。


我已经调试了我的服务器代码并确认:

我从客户端正确获取了验证码 我的 redirect_uri 设置为 postmessage(由 oauth2client 设置的默认值) 我尝试删除“授权重定向 URI”(当我在 Google Play 游戏控制台中将链接的网络应用程序添加到我的游戏时默认创建的)。

虽然这似乎是一个常见问题,但我在使用 play-games-plugin-for-unity 时未能找到任何示例/参考来解决此问题。据我所知,我似乎没有发送任何redirect_uris,但如果不重建原生 Android 插件并尝试调试它,我无法确定。我觉得我在这里遗漏了一些简单的东西。

这是我的服务器代码:

from oauth2client import client

credentials = client.credentials_from_code(LINKED_WEB_APP_CLIENT_ID,
    LINKED_WEB_APP_CLIENT_SECRET, 
    ['https://www.googleapis.com/auth/games'], 
    server_auth_code)

【问题讨论】:

【参考方案1】:

查看clientserverskeleton Java 示例后,我发现传递 ""(空字符串!!)作为 redirect_uri 有效:

from oauth2client import client

credentials = client.credentials_from_code(LINKED_WEB_APP_CLIENT_ID,
    LINKED_WEB_APP_CLIENT_SECRET, 
    ['https://www.googleapis.com/auth/games'], 
    server_auth_code,
    redirect_uri="")

【讨论】:

以上是关于在 Google Play 游戏的服务器授权期间发生 redirect_uri_mismatch 错误的主要内容,如果未能解决你的问题,请参考以下文章

Unity Google Play 游戏插件:错误未授权代码 13

Google Play 游戏服务

用户退出 Google Play 服务后保存游戏的最佳做法?

Google Play 游戏服务 - 管理成就

Google Play 游戏 OAuth-2:Google+ 上的应用可见性

Google Play 游戏 输入 SHA1 后,我无法授权我的链接应用程序