javascript - Facebook Messenger 账号绑定(bind),如何使用?

标签 javascript php facebook facebook-messenger-bot

documentation 中描述了 4 个简单的步骤关于 Messenger 平台的帐户链接:

  1. Register a callback URL using Log In Button.

  2. Messenger Platform invokes the registered URL when a user starts the account linking flow. The redirect_uri and account_linking_token parameters are appended to your registered callback.

  3. Once linking is complete, redirect users to the location provided by redirect_uri and append a authorization_code parameter (defined by you) to confirm linking.

  4. Optionally retrieve the user's page-scoped ID (PSID) using the account linking endpoint. This step should only be used in special cases when you need the user's PSID as part of the linking process.

这些步骤很容易遵循,除了没有任何关于如何实际链接帐户的帮助,我在我的回调网站上获得了 redirect_uri 和 account_linking_token 作为参数,我在其中输入了帐户登录名和密码。

然后,我关联帐户...?具体如何?

这个按钮有什么用?我知道它应该链接帐户,但我需要 account_linking_token 做什么?我已经可以在常规的 web_url 按钮中发送用户 psid,我可以轻松地将它作为参数发送到我的登录按钮,如果凭据正确,我可以将帐户链接到此 psid。

我坚信我缺少或不理解某些东西,但我不知道是什么。我按照步骤调用帐户链接端点来获取 PSID,我已经有了它,因为这是我用我的机器人发送消息的方式,但我并没有真正看到这个按钮上的意义。

那么,我错过了什么?我很沮丧。

最佳答案

刚刚经历了类似的挠头,所以会在我头脑还新鲜的时候解释我所做的事情

在我的示例中,我希望 Facebook 重定向到我的主登录页面,这是一个开放 ID 连接实现。客户登录到此,我从中得到一个 id_token 和 access_token。收到 access_token 后,我从 JWT 中提取“sub”声明,这是我们数据库中的唯一客户标识符。

然后我重定向回在 redirect_uri 中发送给我的值,附加 authorization_code={the-value-of-the-sub-claim}

然后这会触发“帐户链接”webhook,它将发布到我的服务代码,其中包含 Facebook 用户的 PSID 和 authorization_code,这是我在我的业务数据库中的唯一客户 ID。

您现在拥有所需的 2 位信息,即 Post 消息中的唯一 facebook id 和您的唯一客户 id。此时由您的业务代码将此信息保存到某种存储

在后续消息发布到 Bot 端点时,消息中始终包含发件人 (PSID)。您的代码现在可以查找特定于您的业务的相应 ID 并执行与该 ID 相关的操作。

发生链接的地方 - 在您的代码中,您需要处理来自帐户链接网络钩子(Hook)的消息并存储数据以备将来使用。

关于javascript - Facebook Messenger 账号绑定(bind),如何使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43137166/

相关文章:

javascript - 未捕获的类型错误 : undefined is not a function (on video pause function)

javascript - 将字典值中的整数分配给字符串的字符

php - 从数据库中检索时显示多行文本

php - 为什么列堆叠起来?

ios - 发布照片 Facebook iOS

facebook - 2013 年 2 月迁移生效后如何在 friend 的时间轴上发帖?

javascript - 在 ember 助手中绑定(bind)链接

php - 如何在 TreeView 结构中显示数组?

Android facebook sdk 4.0 ProfileTracker onCurrentProfileChanged 永远不会被调用

javascript - ExtJS:返回 json 存储中的总行/记录