2016-04-28 17 views
0

Ich arbeite mit "Save to Android Pay" API und ich versuche, eines meiner Objekte zu aktualisieren. Nach Google's API.Wie aktualisiert man ein Wallet-Objekt in Android Pay?

Eine Möglichkeit ist es Befehle unter Verwendung der cURL zu erreichen und die folgenden Schritte aus:

  1. Holen Sie sich ein Token

java -jar TokenUtil.jar serviceAccountEmailAddress pathToPrivateKey

  1. Speichern Sie die spezifischen Objekt in eine Textdatei

curl -X GET https://www.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken" > myobjectfile.txt

  1. die Änderungen vornehmen, die ich in der Datei vornehmen möchte (und den Versionswert um 1 erhöhen)
  2. Die aktualisierte Datei zurück auf den Server übertragen.

curl -X PUT https://www.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken" -H "Content-Type: application/json" -d myobjectfile.txt

Schritte von 1 bis 3 Arbeit gut, aber wenn ich versuche, das Objekt wieder auf den Server ich die folgende Fehlermeldung zu drücken:

{ 
"error": { 
     "errors": [ 
        { 
        "domain": "global", 
        "reason": "parseError", 
        "message": "Parse Error" 
        } 
        ], 
     "code": 400, 
     "message": "Parse Error" 
     } 
} 

Da alles, was ich in der Datei geändert hat, ist die Version (und vielleicht ein Zeichen in einem Titel, nur um Änderungen zu sehen) Ich verstehe nicht, warum bekomme ich einen Parse-Fehler als myobjectfile.txt kam vom Server und seine interne Struktur wurde nicht von mir gebaut.

+0

Was hat das mit GAE zu tun? –

+0

In Android Pay speichern Schnellstart-Projekt verwendet Google App Engine. Siehe Details hier: https://developers.google.com/save-to-android-pay/samples/quickstart-java – DMEM

+0

Fair genug. Danke. –

Antwort

0

Es dauerte eine Weile, aber Google gelöst schließlich ihre Fehler und teilten ihre Lösung mit mir (hoffentlich werden sie ihre API bald aktualisieren, auch):

• Die Datei eher eine .json Datei sein sollte als eine .txt Datei .

• Es sollte ein @ Zeichen vor dem Dateinamen in dem PUT-Befehl sein:

curl -X PUT https://www.googleapis.com/walletobjects/v1/walletObjectType/resourceId -H "Authorization: Bearer bearerToken" -H "Content-Type: application/json" -d @myobjectfile.json

Nachdem diese Änderungen übernommen, konnte ich mein Objekt aktualisieren.