2016-09-08 99 views
1

我正在使用下面的代码向用户发送“正在键入...”指示符,同时我的机器人正在进行一些处理。在任何对话被反序列化和启动之前,这是发送任何消息的第一件事。根据Facebook的说法,问题是指标并没有消失,即使在6秒之后也是如此。“键入...”指示不会在机器人框架消失+ Facebook Messenger

所以在机器人发送它的消息之后,键入...指示器仍然永远存在。

这只发生在FB Messenger上,但不能与其他通道如电报或模拟器一样。

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 

回答

2

每脸谱,原来的打字消息的实际超时时间为20s:

https://developers.facebook.com/docs/messenger-platform/send-api-reference/sender-actions

此外,当机器人与实际的消息打字指标将被删除响应。

我使用我的测试机器人验证了此行为。 Bot框架不发送“结束输入”消息,只有开始输入一个。

+1

经过进一步测试,我发现我的问题只发生在Android(最新版本)的Messenger应用程序中。同样的机器人在iPhone和Windows Phone以及桌面应用程序和网络版上运行良好。所以我猜这个问题在Facebook的一边。感谢您的检查。 – K48