我使用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()等)。
另外,要指示哪些机器人必须通知触发事件的位置,请使用直接线键添加输出:
但是你可以看到有与上面相同的错误......
是否有人有一些文档或示例。
感谢您阅读我。
答案 0 :(得分:3)
您的绑定配置设置为使用函数的返回值(在这种情况下,也与绑定支持的任何类型都不匹配)
您有几个选择:
message
或者
BotMessage
从Run
方法返回消息实例并删除out BotMessage message
参数。任何一个选项都可以解决这个问题。