Slack Incoming Webhook 作为我的用户发送
Posted
技术标签:
【中文标题】Slack Incoming Webhook 作为我的用户发送【英文标题】:Slack Incoming Webhook sends as my user 【发布时间】:2019-01-23 12:26:55 【问题描述】:我在我的 Slack 工作区中创建了一个传入 Webhook。我正在使用第三方工具将 JSON 对象发布到挂钩 url。我想向@user_1 发送通知
我的问题是通知发送到我和该用户 @user_1 之间的私人频道,而不是直接发送到 @user_1,例如通过 Slackbot 或只有该用户的频道。
如何确保通知来自 Slackbot 或 @user_1,而不是我自己?
我的设置方式是创建一个带有传入 Webhook 的新应用程序。对于频道,我选择@user_1,并使用第三方提供的 url 发送松弛通知。
【问题讨论】:
我无法重现您的问题,您能否添加更多信息如何设置您的 webhook(通过 Slack 应用程序或自定义集成)以及您发送的具体内容?请将信息添加到问题中(不是评论)。谢谢。 因为如果我通过 webhook 向用户发送消息,它总是会出现在他们的“slackbot”频道中。 感谢 @ErikKalkoken - 我已经添加了创建上述 webhook 的步骤。 【参考方案1】:这似乎是通过 Slack 应用设置 webhook 时的标准行为。
但还有另一种方法:您还可以将传入的 webhook 设置为自定义集成。然后你就可以向用户的 slackbot 频道发送消息了。
要将 webhook 设置为自定义集成,请转到 Slack App Directory 并添加应用程序“Incoming Webhook”。然后创建一个新的 webhook。您可以在初始配置中直接使用目标用户的 ID 作为频道,也可以通过在消息中包含频道属性来使用频道覆盖功能。
例子:
"text": "This is a line of text in a channel.",
"channel": "U12345678"
【讨论】:
我尝试了以下方法,并创建了一个传入 Webhook,但它仍然将它添加到我想要使用该 Webhook 直接发送消息的@user 之间的通道中。【参考方案2】:对于基于 webhook 的直接消息,请在有效负载中为 Slack 用户 ID 加上“@”前缀:
"text": "This is a line of text in a channel.",
"channel": "@U1A2B3C4D"
请注意,此类消息似乎是由 Slackbot 发布的。另请注意,您实际上可以使用任何活动的网络钩子进行直接消息传递,而不管网络钩子是为哪个频道定义的。
【讨论】:
以上是关于Slack Incoming Webhook 作为我的用户发送的主要内容,如果未能解决你的问题,请参考以下文章
python 使用Python调用Rocketchat Incoming Webhook
使用 Webhook 到 Slack 的 Azure 警报不起作用