使用机器人框架向 slack 发送主动消息

格言

我有一个用例,我想向一个 slack 用户发送一条消息,我不时地使用机器人框架知道通知的 ID。

现在我有以下几点:

server.get("/api/notify", async (req, res) => {
  await adapter.createConversation(conversationReference, async turnContext => {
    await turnContext.sendActivity("proactive hello");
  });

  res.setHeader("Content-Type", "text/html");
  res.writeHead(200);
  res.write(
    "<html><body><h1>Proactive messages have been sent.</h1></body></html>"
  );
  res.end();
});

对话参考如下所示:

const conversationReference = {
  user: { id: "ID3:ID2", name: "user1" },
  bot: { id: "ID1:ID2", name: "bot1" },
  conversation: {
    isGroup: false,
    id: "ID1:ID2:ID3",
    conversationType: "slack",
    tenantId: "",
    name: ""
  },
  channelId: "slack",
  serviceUrl: "https://slack.botframework.com/"
};

但它只有在用户自机器人启动后与机器人交谈时才有效。但是在重新启动后,这将不再起作用,直到用户发起对话。

当我在机器人重新启动后尝试发送 pro active 消息并且此后用户尚未开始对话时,我收到以下异常:

UnhandledPromiseRejectionWarning: Error
  at new RestError (/usr/app/node_modules/@azure/ms-rest-js/dist/msRest.node.js:1397:28)
  at /usr/app/node_modules/@azure/ms-rest-js/dist/msRest.node.js:1849:37
  at process._tickCallback (internal/process/next_tick.js:68:7)

我的问题是:如何保持这种状态,以便在重新启动后仍然可以发送专业活动消息?

理查德森

啊哈!你问题的这一部分是关键:

但它只有在用户自机器人启动后与机器人交谈时才有效。但是在重新启动后,这将不再起作用,直到用户发起对话。

这几乎肯定是TrustServiceUrl 问题有关其他上下文,请参阅此答案

基本上,在重新启动时,机器人会忘记与该用户交谈是可以的。您需要“信任”用户/活动的 ServiceUrl,以确保机器人知道可以向他们发送消息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用机器人将消息发布到Slack

来自分类Dev

如何保存发送到机器人的主动消息?

来自分类Dev

作为 Slack 机器人回复丰富的消息

来自分类Dev

每次用户与机器人开始新对话时,Slack api 是否有任何方法可以发送消息?

来自分类Dev

从Slack机器人访问Slack文件

来自分类Dev

使用 PHP/Guzzle 向 slack 通道发送消息打印“Array”

来自分类Dev

向机器人邀请者发送消息

来自分类Dev

如何向机器人邀请者发送消息

来自分类Dev

向机器人邀请者发送消息

来自分类Dev

使用Bot框架在Microsoft Teams上发送主动消息

来自分类Dev

如何每'x'小时向Slack发送消息?

来自分类Dev

主动消息聊天机器人的问题

来自分类Dev

使用已卸载的应用程序团队主动发送消息

来自分类Dev

我们该如何使用Slack方法通过Dialogflow机器人发送自定义有效载荷?

来自分类Dev

使用烧瓶中的Webhook将消息发送到Slack

来自分类Dev

如何使用Flutter在Slack通道中发送消息?

来自分类Dev

如何使用 shell 脚本管道 json 卷曲以发送 slack 消息

来自分类Dev

如何使用SlackClient for Node.js在Slack机器人中发送附件

来自分类Dev

电报机器人发送消息

来自分类Dev

删除某些消息机器人发送

来自分类Dev

Slack,发送和接收消息

来自分类Dev

向机器人发消息的用户不知道

来自分类Dev

向所有机器人用户发送消息(电报API)

来自分类Dev

无法通过REST Api Botframework向Facebook机器人发送消息

来自分类Dev

电报机器人向聊天错误发送消息:找不到聊天

来自分类Dev

当机器人醒来时向所有用户发送消息

来自分类Dev

如何通过名称向机器人发送命令?

来自分类Dev

如何向机器人发送和接收回复

来自分类Dev

使用Graph API在Microsoft Teams的机器人通道中以机器人的身份向用户发送消息

Related 相关文章

  1. 1

    使用机器人将消息发布到Slack

  2. 2

    如何保存发送到机器人的主动消息?

  3. 3

    作为 Slack 机器人回复丰富的消息

  4. 4

    每次用户与机器人开始新对话时,Slack api 是否有任何方法可以发送消息?

  5. 5

    从Slack机器人访问Slack文件

  6. 6

    使用 PHP/Guzzle 向 slack 通道发送消息打印“Array”

  7. 7

    向机器人邀请者发送消息

  8. 8

    如何向机器人邀请者发送消息

  9. 9

    向机器人邀请者发送消息

  10. 10

    使用Bot框架在Microsoft Teams上发送主动消息

  11. 11

    如何每'x'小时向Slack发送消息?

  12. 12

    主动消息聊天机器人的问题

  13. 13

    使用已卸载的应用程序团队主动发送消息

  14. 14

    我们该如何使用Slack方法通过Dialogflow机器人发送自定义有效载荷?

  15. 15

    使用烧瓶中的Webhook将消息发送到Slack

  16. 16

    如何使用Flutter在Slack通道中发送消息?

  17. 17

    如何使用 shell 脚本管道 json 卷曲以发送 slack 消息

  18. 18

    如何使用SlackClient for Node.js在Slack机器人中发送附件

  19. 19

    电报机器人发送消息

  20. 20

    删除某些消息机器人发送

  21. 21

    Slack,发送和接收消息

  22. 22

    向机器人发消息的用户不知道

  23. 23

    向所有机器人用户发送消息(电报API)

  24. 24

    无法通过REST Api Botframework向Facebook机器人发送消息

  25. 25

    电报机器人向聊天错误发送消息:找不到聊天

  26. 26

    当机器人醒来时向所有用户发送消息

  27. 27

    如何通过名称向机器人发送命令?

  28. 28

    如何向机器人发送和接收回复

  29. 29

    使用Graph API在Microsoft Teams的机器人通道中以机器人的身份向用户发送消息

热门标签

归档