Bot Framework C#的Azure功能

时间:2017-03-02 15:23:30

标签: c# azure botframework azure-functions

我使用BotFramework制作了一个机器人,我希望每隔5分钟触发一次azure功能(例如)。当它被触发时,我的机器人必须得到通知。

但是我不知道如何做到这一点,我读了这个https://docs.botframework.com/en-us/azure-bot-service/templates/proactive/,但问题是他没有使用Timmer Trigger Azure功能而是使用队列触发器。

我试着做那样的事情:

using System;
using System.Net;
using System.Net.Http;
using Microsoft.Azure.WebJobs.Host;

public class BotMessage
{
    public string Source { get; set; } 
    public string Message { get; set; }
}


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

}

但我有这个错误:

2017-03-02T14:49:40.460 Microsoft.Azure.WebJobs.Host:错误索引方法'Functions.TimerTriggerCSharp1'。 Microsoft.Azure.WebJobs.Host:无法绑定参数'message'以键入BotMessage&。确保绑定支持参数Type。如果您正在使用绑定扩展(例如ServiceBus,Timers等),请确保您已在启动代码中调用扩展的注册方法(例如config.UseServiceBus(),config.UseTimers()等)。

另外,要指示哪些机器人必须通知触发事件的位置,请使用直接线键添加输出:

enter image description here

但是你可以看到有与上面相同的错误......

是否有人有一些文档或示例。

感谢您阅读我。

1 个答案:

答案 0 :(得分:3)

您的绑定配置设置为使用函数的返回值(在这种情况下,也与绑定支持的任何类型都不匹配)

您有几个选择:

  1. 取消选中此框以使用您的函数的返回值并命名参数message
  2. 或者

    1. 将您的函数的返回类型更改为BotMessageRun方法返回消息实例并删除out BotMessage message参数。
    2. 任何一个选项都可以解决这个问题。