Facebook Messenger帐户链接,如何使用它?

时间:2017-03-31 09:27:39

标签: javascript php facebook facebook-messenger-bot

documentation中描述了有关信使平台的帐户关联的4个简单步骤:

  
      
  1. 使用登录按钮注册回调网址。

  2.   
  3. 当用户启动帐户关联流程时,Messenger Platform会调用注册的URL。 redirect_uri和account_linking_token参数将附加到您注册的回调中。

  4.   
  5. 链接完成后,将用户重定向到redirect_uri提供的位置,并附加authorization_code参数(由您定义)以确认链接。

  6.   
  7. 可选择使用帐户链接端点检索用户的页面范围ID(PSID)。只有在您需要用户的PSID作为链接过程的一部分时,才应在特殊情况下使用此步骤。

  8.   

这些步骤非常容易理解,除非对如何实际链接帐户没有任何帮助,我在我的回调网站上输入redirect_uri和account_linking_token作为参数,我在其中输入帐户登录名和密码。

然后,我链接帐户......?究竟是怎么回事?

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

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

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

1 个答案:

答案 0 :(得分:1)

刚刚经过类似的头部刮擦,所以会解释我在脑子里新鲜的时候做了什么

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

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

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

您现在可以获得所需的2位信息,唯一的facebook ID以及Post消息中的唯一客户ID。此时,您的业务代码可以将此信息保存到某种存储

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

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