У меня очень странное исключение, использующее API google в python. Цель состоит в проверке на стороне сервера действительности маркера, соответствующего подписке в приложении от приложения 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)
И это отлично работает на моем компьютере. Но последняя строка вызывает исключение на моих серверах: invalid_grant
Я не понимаю, откуда это может произойти! Если вы можете помочь нам с этим, это было бы замечательно!
некоторый дополнительный код, который я использовал для преобразования сертификата p12 в сертификат pem:
openssl pkcs12 -in privatekey.p12 -nodes -nocerts > privatekey.pem
Затем я удалил первые 4 строки.
Спасибо заранее!