有没有人可以在不使用真实 FB 帐户的情况下与 FB Messenger 机器人进行交互?我想做自动化测试,显然不使用真实账户。我无法弄清楚如何允许访问页面以“测试用户”或创建测试页面并订阅测试应用程序。关于如何做到这一点的任何想法?
4 回答
我使用我制作的一个小网络应用程序充当 facebook messenger api 服务器的本地版本并运行用户操作。
https://github.com/Fraser-Greenlee/bot_tester
您可以在其上编写脚本来定义新用户及其操作。
目前不支持使用非 fb 用户测试 fb bot。以下是原因:
- fb messenger 要求用户登录
- fb 为与机器人交互的每个用户创建页面范围 ID (PSID),因此需要登录 fb
关于测试的问题:
- 您可以将 fb 用户作为测试人员添加到您的页面和应用程序中。在这里解释。对于您的应用https://developers.facebook.com/apps/[app-id]/roles/
- 添加后,他们将能够从信使向您的机器人(页面)发送消息
另一方面,如果您使用 3rd 方应用程序来构建您的机器人(例如:api.ai、wit.ai),他们在应用程序中已经有模拟器,这使得测试更容易。
从 Facebook 开发人员仪表板中,选择您的应用,然后选择角色。从角色中,您可以将其他 Facebook 用户添加为测试用户。对我来说,使用用户 facebook id 是最简单的。通过电子邮件添加并不总是适合我。
我不知道如何在没有 Facebook 帐户的情况下访问 Facebook 机器人。我创建了几个假账户,并让我的朋友测试了这个机器人。经过测试,我删除了虚假帐户。
有关设置机器人的更多信息,请参阅我的文章Facebook Bots for Fun and Profit
示例机器人是DMS Software Bot
源代码是Github fb-robot
至少为信使机器人实现自动化测试的一种简单方法是尝试模仿来自 FB 的请求。您只需将收到的请求记录到您的机器人中即可找到 FB 发送的请求的签名。然后,您可以通过发送具有相同签名的 http 请求来假装是 FB。您还必须添加代码以使用您的回复来响应这些 http 请求,而不仅仅是将消息发送到 FB 的发送 API。
所以在节点中它会像
sendMessage(<your reply>);
res.send(<your reply>);
现在,您有了一种发送和接收消息的自动化方式,可用于自动化测试。
但是我认为更大的挑战是提出足够的测试用例。您需要结合使用对可用数据的聚类和分类来生成新案例。
我一直在研究一种工具来简化这件事。因此,如果您有兴趣,可以注册抢先体验。http://ozz.ai