如何使用多个用户测试 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