Как обновить externalId пользователя с помощью Java
Я пытаюсь обновить пользователя с помощью externalId на основе документации Google Admin SDK.
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);
}
При регистрации ответа на вызов обновления я вижу, что externalId заполнен, и никаких ошибок не выдается. Когда я пытаюсь получить того же пользователя, не остается никаких следов внешнего идентификатора.
Когда я использую GoogleПроводник API и заполнить ExternalId там я получаю такое же поведение. Похоже, что Google API принимает запрос на обновление, но игнорирует ExternalId. Как правильно добавить externalId для пользователя?
редактировать:
Ответ SGC помог мне. Метод setExternalIds ожидает список ExternalIds, я забыл это сделать. Кажется, API Google Java Directory возвращает объект json при извлечении externalIds, поэтому необходимо проанализировать его, чтобы прочитать.