9

我正在开发一个 webhook,我希望它能够@提及特定用户。简单消息格式指定使用<users/123456789012345>@提及特定用户的格式。由于这不是机器人,因此它不处理传入消息并且无法从发件人字段中提取消息,正如上面链接的开发人员网站上的注释中所建议的那样。

如何获取域中用户的 USER_ID?

4

4 回答 4

8

我和你在同一条船上。尝试使用 Webhook 提及用户。

如果您使用 web/dev 工具检查https://chat.google.com上的 HTML ,您实际上可以在标签下看到用户 IDdata-member-id="user/bot/123456789012345"

使用上面的方法,我尝试形成一个提到用户的 webhook(在我的例子中是另一个机器人)。

不幸的是,它没有用。传入字符串<users/123456789012345> please test以字符串文字的形式进行聊天。

这很奇怪,因为 html 链接和标记确实会被解释。正如这里提到的。编辑:也是如此<users/all>

我把这个留在这里,因为您的问题询问如何获取 ID。虽然它可能不是很漂亮,或者不太可自动化,但它至少帮助我获得了用户 ID。

编辑 2:它有效,更不用说出于某种原因我的其他机器人了。但是使用这种方法我可以提到一个人类用户:)

于 2018-06-05T21:39:00.227 回答
7

我用它来查找 USER_ID 但如果你有其他方法让我知道

  1. 右键单击用户并选择检查 在此处输入图像描述

  2. 搜索data-member-id这是你的 USER_ID

在此处输入图像描述

于 2019-11-18T21:46:18.247 回答
1

webhook 将无法提取用户的 USER_ID。作为一种解决方法,您可以创建一个服务帐户和一个可以访问房间的机器人,并使用 REST API 空间.members.list() 和 space.members.get() 方法。

注意:机器人需要添加到房间。

于 2018-03-23T21:01:12.330 回答
0

好的,所以为了获得 UserID 而不必执行您在此处尝试执行的所有操作,您需要在 google app 脚本中使用 Admin SDK API。基本上你想要做的是使用你的谷歌应用脚​​本作为你想要做的事情的中介。因此,您将通过他们在已部署应用程序上的 web exec 函数向 google 应用程序脚本发布一些内容,然后让该应用程序通过以下方式与 google 聊天 API 通信:

var googlewebhookurl = 'https://chat.googleapis.com/v1/spaces/ASDFLKAJHEPQIHEWFQOEWNQWEFOINQ';
var options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload' : JSON.stringify({ text: "<users/000000000001> I see you!" })
  }
UrlFetchApp.fetch(googlewebhookurl, options);

首先,您需要将 Admin SDK API 添加到您的 google 应用脚本服务区域中的服务。因此,单击“服务”旁边的加号,然后选择 Admin SDK API 并单击添加以将其添加到服务中,一旦添加到服务中,它就会在列表中显示为“AdminDirectory”。

这是一张图像,显示了将其添加到服务后的样子。

以下是获取用户信息的 Admin SDK API 文档的链接:https ://developers.google.com/apps-script/advanced/admin-sdk-directory#get_user

您应该能够复制和粘贴该示例函数以获取您正在寻找的有关用户的信息。我正在粘贴下面的示例代码,以防此链接发生问题:

/**
* Get a user by their email address and logs all of their data as a JSON string.
*/
function getUser() {
  var userEmail = 'liz@example.com';
  var user = AdminDirectory.Users.get(userEmail);
  Logger.log('User data:\n %s', JSON.stringify(user, null, 2));
}

为了获取用户ID,获取返回的用户变量并访问user.id,瞧!你有你要找的身份证。从那里只需将其粘贴到谷歌聊天中的短信中,您就应该开展业务了。我还没有让它与卡片一起工作。我没有看到任何文档说它在卡片中完全受支持。有关聊天消息和卡片的更多信息,请查看以下内容:

https://developers.google.com/chat/api/guides/message-formats/basic

https://developers.google.com/chat/api/guides/message-formats/cards

于 2022-02-04T16:03:28.643 回答