优雅地处理空的Facebook快速回复

时间:2019-02-08 10:03:06

标签: c# facebook botframework

昨天我在我们的bot中测试了一些流量,特别是在我们对用户电话号码和电子邮件地址之类的内容进行快速回复的情况下。

我已经在我的iPad上安装了Messenger应用程序(而不是完整的Facebook应用程序),并且使用我的主要Facebook帐户的凭据登录。

现在我已经读到“仅信使帐户”与完整的Facebook帐户不是一回事(我现在找不到有关此文件的文档)。

但是我确实希望仍然会根据Facebook在我的主要Facebook帐户资料中保留的详细信息来填充电子邮件和电话快速回复。

显然,我们可以说些话,希望这些快速答复是空的,但是当我们知道用户没有可以点击的按钮时,能够进行进一步的自定义将是很好的选择。

是否有任何方法可以检测到这些提前答复的可能性?

创建快速回复的代码是简单的帮助方法,例如:

public static JObject GetFacebookEmailChoice()
{
    var channelData = new JObject();
    var child = new JObject {{"content_type", "user_email"}};
    channelData.Add("quick_replies", new JArray(child));
    return channelData;
}

这些用法类似于:

var reply = stepContext.Context.Activity.CreateReply();
reply.Text = questionText;
reply.ChannelData = ChoiceGenerator.GetFacebookEmailChoice();

1 个答案:

答案 0 :(得分:0)

我认为无法确定电话或电子邮件快速回复是否有效,因为我们以前无法知道用户的个人资料是否包含电话号码或电子邮件。< / p>

我要做的是发送2个快速回复

  1. 第一个是电话电子邮件快速回复
  2. 第二个是带有有效负载快速回复的文本(输入电子邮件/电话),用户可以单击该文本然后进入一个对话框,您可以在其中接收他的电子邮件或电话

如果用户的个人资料中包含他的信息,则两者都会呈现,用户可以直接单击“电子邮件”或“电话”快速回复,也可以单击第二个并手动输入信息

如果用户的个人资料中没有这些信息,则仅会显示第二个快速答复,并且用户仍然可以提供所需的信息