来自 Facebook Messenger 机器人对话的 API 身份验证
Posted
技术标签:
【中文标题】来自 Facebook Messenger 机器人对话的 API 身份验证【英文标题】:API authentication from a facebook messenger bot conversation 【发布时间】:2016-08-04 20:06:32 【问题描述】:在 facebook messenger 平台上与机器人对话时,使用外部 API 进行身份验证的最佳方式是什么?
举个广泛的例子,我希望我的机器人用户在他们自己的外部网站个人资料上创建项目。有没有办法从用户那里获取登录信息,或者将我的机器人连接到外部网站,而无需用户明确向机器人发送带有用户名和密码的消息?
我在User Profile API 下的文档中找到的内容:
您可以使用用户个人资料 API 中的人名或个人资料照片来个性化对话。要获取此信息,请向 https://graph.facebook.com/v2.6/?fields=first_name,last_name,profile_pic&access_token= 发出 GET 请求。阅读发送 API 参考中的更多详细信息。
这不是我想要的,但它有帮助。以下是来自文档的更多信息:
用户配置文件 API
请求
curl -X GET "https://graph.facebook.com/v2.6/<USER_ID>?fields=first_name,last_name,profile_pic&access_token=<PAGE_ACCESS_TOKEN>"
回应
"first_name": "Peter", "last_name": "Chang", "profile_pic": "https://fbcdn-profile-a.akamaihd.net/hprofile...70ec9c19b18"
【问题讨论】:
【参考方案1】:这取决于他们是如何进来的。
-
如果他们来自您的网站,您可以使用他们帐户中的“发送至信使”按钮。使用 pass through 参数将您的帐户链接到用户线程。
这是documentation的摘录:
插件接受您定义的传递参数。此参数通过回调发送回给您。您可以使用它将身份验证事件链接到个人和/或交易。例如,一个人可以输入特定交易的在线流程并单击“发送至信使”按钮。您可以传入数据以了解哪个用户和事务与身份验证事件相关联。您应该对该参数进行编码和加密。
-
如果他们直接访问您的机器人,您必须在对话中向他们提供某种登录名(您的登录名)。这将发生在指向移动 Web URL 的链接中。
【讨论】:
这正是我想要的,谢谢!我将编辑您的答案以包含文档中的更多详细信息。 @pschang 如果我想在 bot 中实现第三方 Oauth 流程,比如获取用户的 twiiter 帐户的访问令牌,最佳实践应该是什么?好像用户提供了他的 Twitter 用户名、密码,这不是一个好习惯……有什么想法吗? @ANinJa 我需要同样的解决方案,你有办法解决吗? :) @VaclovasRekašiusJr.您正在实施什么样的用例? @ANinJa 我想通过 Messenger 通用消息实现 facebook 登录(比如说一个简单的按钮)。以上是关于来自 Facebook Messenger 机器人对话的 API 身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Facebook Webhook Messenger 获取页面 ID
Bot Framework v4 + Messenger 区域设置
为 Messenger Bots(又名深度链接)创建自定义入口点(链接)