Wie aktualisiere ich die externalId eines Benutzers mit Java?

Ich versuche, einen Nutzer mit einer externalId zu aktualisieren, die auf der Google Admin SDK-Dokumentation basiert.

UserExternalId externalId = new UserExternalId();
    externalId.setType( "account" );
    externalId.setValue( "test" );
    User user = new User();
    user.setExternalIds( externalId );
    try {
        User update = directory.users().update( "USERKEY", user ).execute().setExternalIds( externalId );
        LOGGER.info("Response from google: " + update.toPrettyString());
        User full = directory.users().get( "USERKEY" ).setProjection( "full" ).execute();
        LOGGER.info( "Response from new get user: " + full.toPrettyString() );
    } catch (IOException e) {
        LOGGER.info("Error: " + e);
    }

Wenn die Antwort beim Update-Aufruf protokolliert wird, kann ich sehen, dass externalId ausgefüllt ist und keine Fehler ausgegeben werden. Wenn ich versuche, denselben Benutzer zu finden, gibt es keine Spur der externalId.

Wenn ich Google '@ verwenAPIs Explorer und gib die ExternalId ein da bekomme ich das selbe Verhalten. Offenbar akzeptiert die Google-API die Aktualisierungsanforderung, ignoriert jedoch die ExternalId. Wie kann ich einem Benutzer eine externalId hinzufügen?

bearbeiten

SGC's Antwort hat mir geholfen. Die setExternalIds-Methode erwartet eine Liste von ExternalIds. Ich habe vergessen, dies zu tun. Die Google Java Directory-API scheint beim Abrufen von externalIds ein json-Objekt zurückzugeben, daher muss es zum Lesen analysiert werden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage