slack 机器人如何找到自己的 ID?
How can a slack bot find out its own id?
我正在编写一个 slack 机器人来监听频道中的所有消息。他的回应应该根据消息是否提到他而有所不同。问题是我不知道如何 "properly" 找出机器人的 ID。该机器人订阅了 message.channels
事件,当有人发布消息提及该机器人时,我得到:
{"client_msg_id":"b94dcc57-d640-4815-9eeb-23c048564bf0",
"type":"message",
"text":"<@UFT98YYYY> how are you?",
"user":"UD45QXXXX",
"ts":"1548958008.003400",
"channel":"CFK3AZZZZ",
"event_ts":"1548958008.003400",
"channel_type":"channel"}
知道 UFT98YYYY
是 bot 的 id 的正确方法是什么?当然有解决这个问题的方法(查看日志,在配置中设置 bot 的 id),但它们看起来丑陋、脆弱并且在安装 bot 时需要一些额外的步骤。机器人是否可以使用 Slack API 调用来查找其 ID?
顺便说一句,我知道我只能订阅提及的内容,但我也需要收听和回应未提及的消息。
当您的应用程序通过 OAuth 安装到工作区时,您将获得一个特定的机器人令牌以及该工作区的机器人 ID。
以下是 Slack 使用机器人令牌和机器人用户 ID 的响应示例:
{
"access_token": "xoxp-XXXXXXXX-XXXXXXXX-XXXXX",
"scope": "incoming-webhook,commands,bot",
"team_name": "Team Installing Your Hook",
"team_id": "XXXXXXXXXX",
"user_id": "XXXXXXXXXX",
"incoming_webhook": {
"url": "https://hooks.slack.com/TXXXXX/BXXXXX/XXXXXXXXXX",
"channel": "#channel-it-will-post-to",
"configuration_url": "https://teamname.slack.com/services/BXXXXX"
},
"bot":{
"bot_user_id":"UTTTTTTTTTTR",
"bot_access_token":"xoxb-XXXXXXXXXXXX-TTTTTTTTTTTTTT"
}
}
请注意,响应中还将包含安装您应用的用户的用户 ID(尽管官方文档中未显示)。确保使用 bot_user_id
,而不是 user_id
。
有关机器人令牌的官方文档,请参阅 here。
知道了。要使用的 API 方法是 auth.test
,它 returns 用户 ID(加上一些额外的字段)。
我正在编写一个 slack 机器人来监听频道中的所有消息。他的回应应该根据消息是否提到他而有所不同。问题是我不知道如何 "properly" 找出机器人的 ID。该机器人订阅了 message.channels
事件,当有人发布消息提及该机器人时,我得到:
{"client_msg_id":"b94dcc57-d640-4815-9eeb-23c048564bf0",
"type":"message",
"text":"<@UFT98YYYY> how are you?",
"user":"UD45QXXXX",
"ts":"1548958008.003400",
"channel":"CFK3AZZZZ",
"event_ts":"1548958008.003400",
"channel_type":"channel"}
知道 UFT98YYYY
是 bot 的 id 的正确方法是什么?当然有解决这个问题的方法(查看日志,在配置中设置 bot 的 id),但它们看起来丑陋、脆弱并且在安装 bot 时需要一些额外的步骤。机器人是否可以使用 Slack API 调用来查找其 ID?
顺便说一句,我知道我只能订阅提及的内容,但我也需要收听和回应未提及的消息。
当您的应用程序通过 OAuth 安装到工作区时,您将获得一个特定的机器人令牌以及该工作区的机器人 ID。
以下是 Slack 使用机器人令牌和机器人用户 ID 的响应示例:
{
"access_token": "xoxp-XXXXXXXX-XXXXXXXX-XXXXX",
"scope": "incoming-webhook,commands,bot",
"team_name": "Team Installing Your Hook",
"team_id": "XXXXXXXXXX",
"user_id": "XXXXXXXXXX",
"incoming_webhook": {
"url": "https://hooks.slack.com/TXXXXX/BXXXXX/XXXXXXXXXX",
"channel": "#channel-it-will-post-to",
"configuration_url": "https://teamname.slack.com/services/BXXXXX"
},
"bot":{
"bot_user_id":"UTTTTTTTTTTR",
"bot_access_token":"xoxb-XXXXXXXXXXXX-TTTTTTTTTTTTTT"
}
}
请注意,响应中还将包含安装您应用的用户的用户 ID(尽管官方文档中未显示)。确保使用 bot_user_id
,而不是 user_id
。
有关机器人令牌的官方文档,请参阅 here。
知道了。要使用的 API 方法是 auth.test
,它 returns 用户 ID(加上一些额外的字段)。