当我的机器人正在进行一些处理时,我正在使用下面的代码向用户发送“打字...”指示器 . 在对任何对话框进行反序列化和启动之前,会在任何消息上发送第一个内容 .
根据facebook的说法,问题是即使在6秒之后,指标也不会消失 .
因此,在机器人发送消息后,打字...指示器仍然存在 .
这只发生在FB Messenger上,但不会发生在电报或模拟器等其他 Channels 上 .
if (activity.Type == ActivityTypes.Message)
{
Activity typing = activity.CreateReply(null);
typing.ServiceUrl = activity.ServiceUrl; //bug in ms bot framework? otherwise service URL is null
typing.Type = ActivityTypes.Typing;
ConnectorClient connector = new ConnectorClient(new Uri(typing.ServiceUrl));
await connector.Conversations.SendToConversationAsync(typing);
//do the actual bot's work here
1 回答
根据Facebook,事实证明他们输入消息的实际超时是20秒:
https://developers.facebook.com/docs/messenger-platform/send-api-reference/sender-actions
此外,当机器人以实际消息响应时,将删除键入指示符 .
我用我的测试机器人验证了这种行为 . Bot框架不发送“结束输入”消息,只开始输入一个 .