Google API会在生产中返回invalid_grant,但不会在本地返回

art*_*hur 10 python google-api google-play-services

我在python中使用谷歌API有一个非常奇怪的例外.目标是在服务器端检查与来自Android应用程序的应用内订阅相对应的令牌的有效性.

为此,我们在Google Play帐户中附加了一个服务帐户,我们尝试使用oauth通过p12密钥验证我们的请求(转换为pem证书以删除密码短语):

from apiclient.discovery import build
from httplib2 import Http
from oauth2client.client import SignedJwtAssertionCredentials

with open("googleplay.pem") as f:
    private_key = f.read()
credentials = SignedJwtAssertionCredentials(GOOGLE_CLIENT_EMAIL, private_key, scope=['https://www.googleapis.com/auth/androidpublisher'])
http_auth = credentials.authorize(Http())
client = build('androidpublisher', 'v2', http=http_auth)
Run Code Online (Sandbox Code Playgroud)

这在我的电脑上完美运行.但是最后一行在我的服务器上触发了一个异常:invalid_grant

我不明白这可能来自哪里!如果你可以帮助我们,我们会非常棒!

我用来将p12证书转换为pem证书的一些额外代码:

openssl pkcs12 -in privatekey.p12 -nodes -nocerts > privatekey.pem
Run Code Online (Sandbox Code Playgroud)

然后我删除了前4行.

提前致谢!

Tim*_*ker 1

我有完全相同的问题。

我通过使用NTP同步系统时间来修复它

这仅适用于根服务器。不在虚拟服务器上。如果您租用虚拟服务器,请联系您的服务器托管提供商。

我希望这有帮助 :)