gpt4 book ai didi

java - 如何使用 Java 更新用户的 externalId

转载 作者:行者123 更新时间:2023-12-01 12:03:02 34 4
gpt4 key购买 nike

我正在尝试根据 Google Admin SDK 文档使用 externalId 更新用户。

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 已填写并且没有抛出任何错误。当我尝试获取同一用户时,没有任何 externalId 的踪迹。

当我使用 Google 时'APIs explorer并在那里填写ExternalId,我得到了相同的行为。看起来 Google API 正在接受更新请求,但忽略了ExternalId。向用户添加 externalId 的正确方法是什么?

编辑:

SGC的回答帮助了我。 setExternalIds 方法需要一个ExternalIds 列表,我忘了这样做。 Google Java Directory API在获取externalIds时似乎返回一个json对象,因此需要解析它才能读取它。

最佳答案

更新用户的外部ID时,如果JSON设置不正确,则不会保存(尽管它给出200响应)。如果您尝试向该用户发送 get 请求,则响应中看不到更新的值。

尝试使用“Oauth Play ground ”发送请求,您可以在发送请求时构建 JSON。

我尝试在“Users.update”请求中使用 {"externalIds":[{"value":"shaggynetwork","type":"network"}]} 。在“Users.get”中,响应是:

HTTP/1.1 200 OK
Content-type: application/json; charset=UTF-8
{
"externalIds": [
{
"type": "network",
"value": "shaggynetwork"
}

],

步骤:

  1. 点击https://developers.google.com/oauthplayground/ .

  2. 在第 1 步中,在“授权 API”左侧空白处输入 https://www.googleapis.com/auth/admin.directory.user ,然后点击“授权 API”。

3.在第2步中,点击“兑换代币代码”

  • 在步骤 3 中,选择 HTTP 方法:PUT,给出请求 URI 值:https://www.googleapis.com/admin/directory/v1/users/userKey(giver用户 key 值)。
  • 5.点击“输入请求体”,构建json:

    {"externalIds":[{"value":"shaggynetwork","type":"network"}]}

    6.点击“发送请求”。

    在文档中,不清楚如何更新外部 ID。

    如果您需要任何帮助,请告诉我。

    关于java - 如何使用 Java 更新用户的 externalId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27860653/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com