【问题标题】:url for sending messages to whomever messaged me用于向给我发消息的人发送消息的 url
【发布时间】:2018-07-10 06:29:49
【问题描述】:

我创建了一个 Slack 应用程序。它是一个聊天机器人。我将其命名为 jsbot。

我的机器人的工作:

  • 某人messages我的bot
  • 我的bot 拿着那个messagedialogflow (api.ai)
  • dialogflow 根据message 返回一个action
  • 我在我的database 中找到了一个与action 匹配的key,而database 返回了与匹配的key 对应的value
  • 我将value 发送给whomever messaged me

问题:

目前我正在将最后一条消息发送到slack incoming webhook,它工作正常。现在我的slackteam members 之一安装了我的app

他向我的应用程序发送了一条消息。我的应用会响应我,而我希望它会响应我的朋友。

代码:

这是我的机器人响应的代码:

request({
    uri: 'https://hooks.slack.com/services/XXX',
    method: 'POST',
    json: message
}, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log('Successfully sent message');
    } else {
        console.error(error);
    }
});

我认为每个用户都有不同的incoming-webhook uri。所以,我正在寻找一个将消息发送给特定用户的 url。当用户请求我时,我保存了用户,因此我可以向同一用户发送消息。

有人知道允许我通过 user_id 发送消息的 slack webhook 的 url 吗?

【问题讨论】:

    标签: node.js bots slack-api chatbot


    【解决方案1】:

    Incoming webhooks 在 Slack 上的工作方式略有不同。您不需要或不希望每个用户有一个单独的 webhook URL。相反,您可以使用相同的传入 webhook URL 向不同的用户发送消息。

    您需要做的就是提供接收用户的用户 ID 作为频道参数(从而覆盖默认频道)。

    curl -X POST -H 'Content-type: application/json' --data '{"channel": "U12345678", "text":"This is a line of text.\nAnd this is another one."}' https://hooks.slack.com/services/XXXXX
    

    【讨论】:

    • 顺便说一句。由于您已经有一个 Slack 应用程序,您可能需要考虑使用 API 方法 chat.postMessage,而不是传入的 webhook。在那里,您还可以使用用户 ID 作为频道参数。
    • 我使用了incoming-webhook 并按照您的指南将用户ID 传递给了频道。但我仍然有同样的问题。
    • 我还查看了 API 方法 chat.postMessage 但它需要一个令牌,我不知道从哪里获取令牌。
    • 另外,你能解释一下我的网址的最后一个参数吗?我的意思是https://hooks.slack.com/services/TTT/BBB/XXXTTT表示team_idBBB表示bot_id,那么XXX是什么意思?
    • 你所说的“同样的问题”是什么意思。如果消息仍然发送给您,而不是其他用户,您显然使用了错误的 user_id
    猜你喜欢
    • 2018-09-13
    • 2017-06-04
    • 1970-01-01
    • 2018-06-29
    • 2020-09-09
    • 1970-01-01
    • 2019-05-10
    • 2014-10-27
    • 1970-01-01
    相关资源
    最近更新 更多