"Typing..." 指示在 bot 框架 + facebook messenger 中不会消失
"Typing..." indication doesn't disappear in bot framework + facebook messenger
我正在使用下面的代码在我的机器人进行某些处理时向用户发送 "Typing..." 指示器。在反序列化和启动任何对话框之前,这是在任何消息上发送的第一件事。
根据 facebook 的说法,问题是指示器没有消失,即使在 6 秒后也没有消失。
所以在 bot 发送消息后,Typing... 指示符仍然永远存在。
这只发生在 FB Messenger 上,但不会发生在 Telegram 或模拟器等其他渠道上。
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
根据 Facebook,事实证明他们输入消息的实际超时是 20 秒:
https://developers.facebook.com/docs/messenger-platform/send-api-reference/sender-actions
此外,当机器人响应实际消息时,键入指示器将被删除。
我用我的测试机器人验证了这个行为。 Bot 框架不发送 "end typing" 消息,只发送开始输入消息。
我正在使用下面的代码在我的机器人进行某些处理时向用户发送 "Typing..." 指示器。在反序列化和启动任何对话框之前,这是在任何消息上发送的第一件事。
根据 facebook 的说法,问题是指示器没有消失,即使在 6 秒后也没有消失。
所以在 bot 发送消息后,Typing... 指示符仍然永远存在。
这只发生在 FB Messenger 上,但不会发生在 Telegram 或模拟器等其他渠道上。
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
根据 Facebook,事实证明他们输入消息的实际超时是 20 秒:
https://developers.facebook.com/docs/messenger-platform/send-api-reference/sender-actions
此外,当机器人响应实际消息时,键入指示器将被删除。
我用我的测试机器人验证了这个行为。 Bot 框架不发送 "end typing" 消息,只发送开始输入消息。