Ho un'eccezione molto strana utilizzando l'API di google in python. L'obiettivo è verificare sul lato server la validità di un token corrispondente a una sottoscrizione in-app da un'applicazione Android.API Google restituisce invalid_grant in produzione ma non in locale
Quindi, per fare questo, abbiamo un account di servizio collegato al nostro account Google Play e cerchiamo di Authentify nostra richiesta utilizzando OAuth attraverso la chiave di p12 (convertito in un certificato PEM al fine di rimuovere la passphrase):
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)
E questo funziona perfettamente sul mio computer. Ma l'ultima riga attiva un'eccezione sui miei server: invalid_grant
Non capisco da dove possa venire! Se puoi aiutarci, sarebbe meraviglioso!
po 'di codice aggiuntivo che ho usato per convertire il certificato di p12 ad un certificato PEM:
openssl pkcs12 -in privatekey.p12 -nodes -nocerts > privatekey.pem
Poi ho tolto le prime 4 righe.
Grazie in anticipo!
Hum grazie, ma io non credo che questo sia rilevante per il mio caso ... In effetti, sto usando un account di servizio e quindi non dovrebbe avere questo problema. :( – arthur