0

Meine Frage ist ähnlich wie this one. Allerdings verwende ich die API Java Client Library mit einem Dienstkonto, Aufrufe an die API von meinem Server.Google Play Developer API - 400 Ungültiger Wert - InAppPurchases

Mein Code folgt this Guide, der sehr einfach ist. Ich kann jedoch keinen passenden Fehler für meine Anfrage erhalten. Dies ist, wie ich bauen meine AndroidPublisher:

val credential = GoogleCredential.fromStream(FileInputStream(
     "/path/to/json" 
)).createScoped(Collections.singleton(AndroidPublisherScopes.ANDROIDPUBLISHER)) 

androidPublisher = AndroidPublisher.Builder(httpTransport, JSON_FACTORY, credential) 
     .setApplicationName(packageName) 
     .build() 

Wo die JSON aus dem Developer generiert wird Konsole unter Dienstkonten. So stelle ich meine Anfrage:

androidPublisher.purchases().subscriptions().get(packageName, "valid-sku", "invalid-token").execute() 

Meine Subskriptions-ID ist gültig, aber mein Token ist ungültig. Ich erwarte einen Fehler wie "ungültiges Token" in der Antwort. Doch was ich bekommen ist:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request 
{ 
    "code" : 400, 
    "errors" : [ { 
    "domain" : "global", 
    "message" : "Invalid Value", 
    "reason" : "invalid" 
    } ], 
    "message" : "Invalid Value" 
} 

Ist das ein allgemeiner Fehler wegen des ungültigen Token oder ist es ein Authentifizierungsproblem? Wenn es ein Authentifizierungsproblem ist, wie löse ich es? Wenn es ein ungültiges Token-Problem ist, wie soll ich das wissen?

Mehr Informationen:

  • Ich bekommen die gleichen Fehler, wenn diesen Anruf von der API Explorer zu machen versuchen, so gut (diesmal einen Client-ID und API-Schlüssel anstelle von Dienstkonto verwenden).
  • Ich habe nicht delegierten domänenweiten Zugriff auf das Dienstkonto. Muss ich aus irgendeinem Grund?
  • Ich kann erfolgreich andere Anrufe an die API wie inappproducts.list

Antwort

0

machen den Grund So, das war nur passiert, weil die purchaseToken ich war falsch verwendet hat.

Ich habe nicht erwartet, dass dies der Grund ist, da ich dachte, dass im Falle eines ungültigen Tokens ich einen "Token ungültig" -Fehler (oder etwas Ähnliches) erhalten würde. Wie sich herausstellt, sind die Antworten von Google ziemlich inkonsistent (ein 404 könnte auch für ein ungültiges Token gegeben werden).

Verwandte Themen