1

我需要通过 Microsoft Bot V4 在特定时间向用户发送主动通知。我不完全确定如何进行此操作。

目前,我正在尝试使用 Azure Function 向用户发送主动消息,但是我不确定使用什么来连接 bot 服务和 azure 函数。我查看了 Direct Line,但对我来说并不清楚。

目前,我能想到的最好的方法是使用 Azure Function 和 Direct Line 向用户发送主动通知。

我通过邮递员测试了 Directline API,但它没有用。它说未找到会话 ID。

https://directline.botframework.com/v3/directline/conversations/{conversationId}/activities

JSON 发布

{
    "type": "message",
    "from": {
        "id": "user1"
    },
    "text": "hello"
}

消息发送后,它应该给我ID。

{
    "id": "0001"
}

编辑:

我设法理解了我与 Direct Line 的问题。它不允许我将消息发送到不同的频道,例如网络聊天或 Skype 上的机器人。是否有任何其他选项可以在 Skype 上向我的用户发送消息?

4

2 回答 2

0

您需要创建输出机器人框架,这是 azure 函数的绑定信息,它将在每 x 分钟后触发

{
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 */1 * * * *"
    },
    {
      "type": "bot",
      "name": "$return",
      "botId": "Azurefunction",
      "secret": "AppSettingNameOfYourBot",
      "direction": "out"
    }
  ],
  "disabled": false
}

天蓝色的功能是

使用系统;使用 System.Net;使用 System.Net.Http;使用 Microsoft.Azure.WebJobs.Host;

公共类 BotMessage { 公共字符串源 { 获取;放; } 公共字符串消息 { 获取;放; } }

public static BotMessage  Run(TimerInfo myTimer ,TraceWriter log)
{
    BotMessage message = new BotMessage()
    {
        Source = "AzureFunction",
        Message = "Testing"
    };
    return message;
}

此外,您的绑定配置设置为使用函数的返回值(在这种情况下,它与绑定支持的任何类型都不匹配),这就是您可以在 Bot 和 azure 函数之间建立连接的方式。

对于 Directline api 相关问题,请查看此线程

无法在机器人框架中使用 directlineapi 发送消息

希望能帮助到你。

于 2019-04-24T08:50:26.860 回答
0

好的,所以我解决了我的问题。通过使用 REST 连接器https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-authentication?view=azure-bot-service-4.0我想我只是做了很大的假设,我必须使用 Direct Line

我可能没有解释清楚我的问题到底是什么。感谢您的回复!

于 2019-04-24T12:08:07.480 回答