【问题标题】:Gracefully Handling Empty Facebook Quick Replies优雅地处理空的 Facebook 快速回复
【发布时间】:2019-10-11 21:47:34
【问题描述】:

我昨天在我们的机器人中测试了一些流程,特别是我们对用户电话号码和电子邮件地址等内容使用快速回复的情况。

我在我的 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();

【问题讨论】:

  • 谢谢,我已经添加了代码示例。
  • 来自 BotFramework 的快速回复似乎在 iOS Messenger 应用程序上运行良好。不知道为什么它不能在 iPad 上运行。我建议更新 iPad 和 Messenger 应用程序。此外,据我所知,没有办法主动知道用户使用的是什么设备。
  • 不,问题不在于它们工作或不工作,它们工作正常。问题是无法保证快速回复将由 Messenger 或 Facebook 填充。

标签: c# facebook botframework


【解决方案1】:

我认为没有办法知道电话或电子邮件快速回复是否有效,因为我们以前无法知道用户的个人资料中是否有电话号码或电子邮件。

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

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

如果用户的个人资料中有他的信息,那么两者都会呈现,用户可以直接点击电子邮件或电话快速回复或点击第二个并手动输入信息

如果用户的个人资料中没有这些信息,则只会呈现第二个快速回复,用户仍然可以提供所需的信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    相关资源
    最近更新 更多