Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将Facebook Messenger机器人与现有nodejs后端安全集成?_Node.js_Facebook_Facebook Graph Api_Sails.js_Messenger - Fatal编程技术网

Node.js 如何将Facebook Messenger机器人与现有nodejs后端安全集成?

Node.js 如何将Facebook Messenger机器人与现有nodejs后端安全集成?,node.js,facebook,facebook-graph-api,sails.js,messenger,Node.js,Facebook,Facebook Graph Api,Sails.js,Messenger,我目前有一个工作的NodeJs后端(使用Sailsjs构建),它为我正在构建的移动应用程序托管rest服务 现在我想扩展到Facebook Messenger,这样我就可以让我的用户选择与机器人通信,而不是使用应用程序 例如,如果用户想要查找他的下一个约会,他可以打开应用程序并进行查找,或者打开Messenger并询问“我的下一个约会是什么时候?”。 为了使其正常工作,我必须将Messenger用户识别为数据库中的现有用户。为此,我目前正在使用Facebook Messenger。我设法使帐户链

我目前有一个工作的NodeJs后端(使用Sailsjs构建),它为我正在构建的移动应用程序托管rest服务

现在我想扩展到Facebook Messenger,这样我就可以让我的用户选择与机器人通信,而不是使用应用程序

例如,如果用户想要查找他的下一个约会,他可以打开应用程序并进行查找,或者打开Messenger并询问“我的下一个约会是什么时候?”。 为了使其正常工作,我必须将Messenger用户识别为数据库中的现有用户。为此,我目前正在使用Facebook Messenger。我设法使帐户链接正常工作,并将用户PSID保存到我的数据库中。 对于我当前使用的bot(考虑使用其他服务)。所有消息都会传递到我的运动机器人webhook和我的后端webhook。在一个应用程序中使用两个Webhook感觉不太对,是吗

我的移动应用程序的rest服务都使用webtoken来识别拨打电话的用户,但是我的Messenger bot用户没有webtoken,我如何解决这个问题,并且仍然有一个安全的平台? 也许我可以给用户发送令牌或PSID以及Motion.ai令牌的选项?对于所有用户,Motion.ai令牌都是相同的,但仍然在一定程度上保护了我的后端,因为它只接受Motion.ai服务器的请求

我真的很感激你能提供的任何帮助

好的,我找到了让它工作的方法。 因为我在做一个荷兰机器人的动作。ai不适合我。我改用Api.ai主要是因为它们支持荷兰语,但也因为它具有高级的语言处理能力。 我发现我不能将我的控制器重新用于我的机器人和移动应用程序。为了解决这个问题,我将所有逻辑移到了一个服务(更好的设计),我可以调用我的bot控制器和rest服务控制器

为了使一切都能安全地工作,我做了以下工作:

1:Api.ai不支持Facebook进行的帐户链接回调,因此我使用我的服务器作为Facebook应用程序的webhook

2:我使用Sails策略确认Facebook令牌,检查数据库中的用户ID(如果不匹配,则向用户发送帐户链接请求),并处理帐户链接回调。 为了保护Api.ai webhook,我使用了另一个使用基本身份验证的策略

2.1如果用户尚未链接,链接过程将发送登录表单,以便他可以使用我的应用程序中使用的电子邮件和密码登录

2.2:如果用户电子邮件和密码匹配,我会向fb发送重定向链接以确认登录。我还添加了一个包含usersid的令牌(来自我的数据库)

2.3:Fb现在将通知用户他已成功登录,并使用从我处收到的令牌发送帐户链接回调。由于用户id在令牌中,我现在可以在我的数据库中查找该用户,并用我从Facebook收到的id更新他的FacebookID。现在用户已正式登录

3:一旦确认了策略,我就使用控制器将Facebook消息重定向到Api.ai


4:最后,Api.ai将向我的服务器发送一个响应,服务器将处理该响应,并将消息重定向到fb用户

假设您可以像您所说的那样为您的机器人切换到另一个服务,请切换到

因为它提供了一个新的平台,而且似乎正在引领bot市场

还有,但我还没有测试过


希望这有帮助:)

假设您可以像您所说的那样为您的机器人切换到另一个服务,请切换到

因为它提供了一个新的平台,而且似乎正在引领bot市场

还有,但我还没有测试过


希望这有帮助:)

谢谢,但我知道api.ai和wit.ai。它们确实会简化bod构建过程,但仍然无法解决我的安全问题……谢谢,但我知道api.ai和wit.ai。它们确实会简化bod构建过程,但仍然无法解决我的安全问题。。。