我当时看着https://api.slack.com/events/app_mention是一种订阅机制,用于订阅发送到我的机器人的消息,这些消息将由我的应用程序处理。
该页面上的有效负载示例显示为:
{
"token": "ZZZZZZWSxiZZZ2yIvs3peJ",
"team_id": "T061EG9R6",
"api_app_id": "A0MDYCDME",
"event": {
"type": "app_mention",
"user": "U061F7AUR",
"text": "What is the hour of the pearl, <@U0LAN0Z89>?",
"ts": "1515449522.000016",
"channel": "C0LAN2Q65",
"event_ts": "1515449522000016"
},
"type": "event_callback",
"event_id": "Ev0LAN670R",
"event_time": 1515449522000016,
"authed_users": [
"U0LAN0Z89"
]
}
在这种情况下,我想删除消息中的僵尸名称<@ U0LAN0Z89>,但我不只是想正则表达式删除任何<@mentions>,而只是僵尸僵尸。
我可以指望属于bot的ID在authed_users中吗?还是我的应用有另一种方法来获取正在发送消息的机器人的ID?
答案 0 :(得分:0)
从我阅读您的消息的方式来看,听起来您想从事件中获得几个不同的信息,所以我将尽力介绍这两个信息。随意忽略任何错误的假设。
首先是authed_users
字段。 据我所知,您的假设是正确的,但我不是100%。
为绝对确定要删除正确的ID,可以解析event.text
字段,并为每个值调用users.info
。在users.info
内部,您会看到一个user.profile.api_app_id
字段。与您的应用ID匹配的一个绝对是您的漫游器。
我不确定的第二个问题是
获取正在发送消息的机器人的ID
假设您要获取创建触发该事件的消息的人员的UID,那么您需要的是event.user
字段。
希望有帮助!
答案 1 :(得分:0)
在authed_users
事件中处理link_shared
时,我也遇到了相同的行为。无论有多少用户通过该应用程序进行了身份验证,该列表将仅包含漫游器用户ID。
然后我注意到我在 Bot Events 下发生了link_shared
事件。在将其移至应用程序配置页面中的工作区事件之后,现在它将获得没有bot ID的经过身份验证的用户的实际列表。
希望这可以阐明这个问题。