API 来自 Facebook Messenger 机器人对话的身份验证

API authentication from a facebook messenger bot conversation

通过与 Facebook Messenger 平台上的机器人对话,使用外部 API 进行身份验证的最佳方式是什么?

举一个广泛的例子,我希望我的机器人的用户在他们自己的外部网站个人资料上创建项目。有没有办法从用户那里获取登录信息,或者将我的机器人连接到外部网站,而无需用户用他们的用户名和密码明确地向机器人发送消息?

我在 User Profile API 下的文档中找到的内容:

You can personalize the conversation using the person's name or profile pic from the User Profile API. In order to get this information, make a GET request to https://graph.facebook.com/v2.6/?fields=first_name,last_name,profile_pic&access_token=. Read more details in the Send API reference.

这不是我要找的东西,但它很有帮助。以下是来自文档的更多信息:

User Profile API

Request

curl -X GET "https://graph.facebook.com/v2.6/<USER_ID>?fields=first_name,last_name,profile_pic&access_token=<PAGE_ACCESS_TOKEN>"

Response

{ "first_name": "Peter", "last_name": "Chang", "profile_pic": "https://fbcdn-profile-a.akamaihd.net/hprofile...70ec9c19b18" }

这取决于他们是如何进来的。

  1. 如果他们来自您的网站,您可以使用他们帐户中的“发送到 Messengee”按钮。使用传递参数 link 您的帐户到用户线程。 以下是 documentation 的摘录:

The plugin takes in a pass-through parameter defined by you. This parameter is sent back to you via a callback. You can use this to link the authentication event to a person and/or transaction. For example, a person may enter an online flow for a specific transaction and click the Send-to-Messenger button. You can pass in data to know which user and transaction was tied to the authentication event. You should encode and encrypt this parameter.

  1. 如果他们直接访问您的机器人,您必须在对话中向他们提供某种登录信息(您的登录信息)。这会发生在 link 到移动 web URL 中。