如何使用多个用户测试 FB Messenger bot

Posted

技术标签:

【中文标题】如何使用多个用户测试 FB Messenger bot【英文标题】:How to test FB messenger bot with multiple users 【发布时间】:2016-12-24 08:49:10 【问题描述】:

有没有人可以在不使用真实 FB 帐户的情况下与 FB Messenger 机器人交互?我想做自动化测试,显然不使用真实账户。 我无法弄清楚如何允许访问页面以“测试用户”或创建测试页面并订阅测试应用程序。 关于如何做到这一点的任何想法?

【问题讨论】:

你应该改进这个问题的主题以引用自动化,因为测试具有多个用户的机器人非常简单,但自动化测试并不那么简单。 【参考方案1】:

我使用我制作的一个小网络应用程序充当本地版本的 facebook messenger api 服务器并运行用户操作。

https://github.com/Fraser-Greenlee/bot_tester

您可以在上面编写脚本来定义新用户及其操作。

【讨论】:

【参考方案2】:

从 Facebook 开发人员仪表板中,选择您的应用,然后选择角色。从角色中,您可以将其他 Facebook 用户添加为测试用户。对我来说,使用用户的 facebook id 是最简单的。通过电子邮件添加并不总是适合我。

我不知道如何在没有 Facebook 帐户的情况下访问 Facebook 机器人。我创建了几个假账户,并让我的朋友测试了这个机器人。经过测试,我删除了虚假帐户。

有关设置机器人的更多信息,请参阅我的文章Facebook Bots for Fun and Profit

示例机器人是DMS Software Bot

源码是Github fb-robot

【讨论】:

【参考方案3】:

目前不支持使用非 fb 用户测试 fb bot。原因如下:

fb messenger 要求用户登录 fb 为与机器人交互的每个用户创建页面范围 ID (PSID),因此需要登录 fb

关于测试的问题:

您可以将 fb 用户作为测试人员添加到您的页面和应用程序中。解释here。为您的应用程序https://developers.facebook.com/apps/[app-id]/roles/ 添加后,他们将能够从 messenger 向您的机器人(页面)发送消息

另一方面,如果您使用 3rd 方应用程序来构建您的机器人(例如:api.ai、wit.ai),他们在应用程序中已经有模拟器,这使得测试更加容易。

【讨论】:

【参考方案4】:

至少实现信使机器人自动化测试的一种简单方法是尝试模仿来自 FB 的请求。您只需将收到的请求记录到您的机器人中,即可找到 FB 发送的请求的签名。然后,您可以通过发送具有相同签名的 http 请求来假装是 FB。您还必须添加代码以使用您的回复来响应这些 http 请求,而不仅仅是将消息发送到 FB 的发送 API。

所以在节点中它会是这样的

sendMessage(<your reply>);
res.send(<your reply>);

现在您有了一种自动发送和接收消息的方式,可用于自动化测试。

但我认为更大的挑战是提出足够的测试用例。您需要结合使用对可用数据的聚类和分类来生成新案例。

我一直在开发一种工具来简化此操作。因此,如果您有兴趣,可以注册抢先体验。 http://ozz.ai

【讨论】:

以上是关于如何使用多个用户测试 FB Messenger bot的主要内容,如果未能解决你的问题,请参考以下文章

使用 FB Message Dialog iphone sdk 打开 facebook messenger

在 iOS Xcode 中检索 fb 用户 ID

Cordova Android 不允许向 fb-messenger 打开列入白名单的意图

FB Messenger Bot:Webhook更新未送达

深度链接到 Facebook Messenger

FB messenger Bot 没有收到回发负载