2015-10-06 6 views
5

Ich versuche, die Directory API zu verwenden, um ein Kundenobjekt zu aktualisieren, aber versucht, alles auf der obersten Ebene in einer 400 (ungültige Kundensprache) zu ändern) Fehler wird zurückgegeben.Directory API, Customer UPDATE/PATCH scheitert mit "Ungültige Kundensprache"

Hier ist die get des ursprünglichen Objekts (einige für die Privatsphäre redigiert Artikel)

Anfrage

GET https://www.googleapis.com/admin/directory/v1/customers/<customerID> 

Antwort

200 OK 
{ 
"kind": "admin#directory#customer", 
"id": "<customerID>", 
"etag": "\"<etag>\"", 
"customerDomain": "<domainName>", 
"alternateEmail": "<email>", 
"postalAddress": { 
    "contactName": "<name>", 
    "organizationName": "", 
    "locality": "<city>", 
    "region": "<state>", 
    "countryCode": "US", 
    "addressLine1": "<address1>", 
    "addressLine2": "", 
    "addressLine3": "", 
    "postalCode": "<zip>" 
}, 
"phoneNumber": "<phoneNumber>", 
"language": "en", 
"customerCreationTime": "2011-03-31T03:45:49.408Z" 
} 

Der Versuch, dann die Telefonnummer zu aktualisieren oder Sprache führt einzeln zum Fehler. Es spielt keine Rolle, ob ich einen Patch oder einen Update-Anruf verwende.

Telefonnummer Patch Anruf:

{ 
    "phoneNumber": "+18005551234" 
} 

Sprache Patch Aufruf:

{ 
    "language": "en-GB" 
} 

Patch oder Update Rufantwort

400 OK 
{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "invalid", 
    "message": "Invalid Customer language" 
    } 
    ], 
    "code": 400, 
    "message": "Invalid Customer language" 
} 
} 

Im Moment spiele ich nur mit den Online-Tools (https://developers.google.com/admin-sdk/directory/v1/reference/customers/patch), bevor ich es in Code ziehe. Ich habe nichts in den Dokumenten, Foren, dem Issue Tracker oder hier gefunden, die das Problem beheben. jede Hilfe wäre sehr willkommen!

Antwort

3

Sieht aus wie es ist ein Fehler mit den Online-Tools. Ich konnte das Objekt erfolgreich mit einer Update-Version von GAM (https://github.com/jay0lee/GAM) manipulieren und bin bereit, weiter zu gehen. Ich lasse das hier für den Fall, dass jemand anderes über das Problem läuft.

+0

die in GAM-Befehl? Ich sehe keinen Befehl zum Aktualisieren der Kundenressource. Vielen Dank. –

0

Mit PUT-Anfrage funktioniert für mich, in node-sdk ich so etwas wie diese:

google.admin('directory_v1').customers.update({ 
    auth: auth,    
    customerKey: 'my_customer' 
    resource: {    
     customerDomain: 'some-domain', 
    }       
    }, function(err, response) { 
    // Some code 
    }