用于向任何向我发送消息的人发送消息的URL

时间:2018-01-31 07:57:51

标签: node.js bots slack-api chatbot

我创建了一个松弛的应用程序。它是一个聊天机器人。我把它命名为jsbot。

我的机器人的工作:

  • 某人messages到我的bot
  • 我的bot接受message并转到dialogflow (api.ai)
  • dialogflow会根据action向我返回message
  • 我在key找到与action匹配的database,而database找回与匹配value对应的key
  • 我将value发送给whomever messaged me

问题:

目前我正在向slack incoming webhook发送最终消息,但它运行正常。现在我的slackteam member之一安装了我的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。当用户请求我时,我保存了用户,因此我可以向同一个用户发送消息。

有人知道slack webhook的网址,它允许我通过user_id发送消息吗?

1 个答案:

答案 0 :(得分:0)

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