Facebook graph api Facebook Messenger订阅的应用、页面和应用访问令牌生成

Facebook graph api Facebook Messenger订阅的应用、页面和应用访问令牌生成,facebook-graph-api,facebook-messenger-bot,Facebook Graph Api,Facebook Messenger Bot,我在开发Facebook页面与我的机器人的无缝集成时遇到了麻烦 本质上,我希望实现与Chatfuel或Manychat相同的集成,通过Facebook帐户登录,您只需选择要连接到他们的页面即可 我面临的问题是生成正确的令牌,以便将所选页面绑定到我的应用程序(bot)。根据Facebook文档: 创建订阅的应用程序边缘时,在端点中使用的页面id必须与API调用中使用的页面访问令牌的页面id匹配。已为页面安装访问令牌所针对的应用程序 鉴于呼叫除了访问令牌没有其他参数,此访问令牌必须足以让Facebo

我在开发Facebook页面与我的机器人的无缝集成时遇到了麻烦

本质上,我希望实现与Chatfuel或Manychat相同的集成,通过Facebook帐户登录,您只需选择要连接到他们的页面即可

我面临的问题是生成正确的令牌,以便将所选页面绑定到我的应用程序(bot)。根据Facebook文档:

创建订阅的应用程序边缘时,在端点中使用的页面id必须与API调用中使用的页面访问令牌的页面id匹配。已为页面安装访问令牌所针对的应用程序

鉴于呼叫除了访问令牌没有其他参数,此访问令牌必须足以让Facebook:

  • 授权页面上的操作
  • 确定订阅页面的应用程序
  • 这在使用时得到确认,用户选择要绑定的页面和应用程序,并生成正确的访问令牌:

    此令牌在终端中使用cURL时正常工作:

    $ curl -X POST 'https://graph.facebook.com/v3.0/<MY_APP_ID_HERE>/subscribed_apps?access_token=<TOKEN_PASTED_FROM_GRAPH_API_EXPLORER>'
    {"success":true}
    
    $curl-X POST'https://graph.facebook.com/v3.0//subscribed_apps?access_token='
    {“成功”:真的}
    
    使用Facebook访问令牌调试器(访问令牌左侧的信息图标,然后在访问令牌工具中打开),可以确认令牌知道必须连接的页面和应用程序

    问题是,这些页面应用程序相关的令牌是如何以编程方式生成的?我似乎在Facebook文档中找不到合适的API调用,这是完全可能的,因为Chatfoure和Manychat正在这样做


    提前感谢您的支持和社区

    要做到这一点,您需要将FB登录到您的网站/客户门户,并请求页面消息和管理页面权限。登录的人必须是页面管理员

    一旦您的应用被授予该页面的权限,您就可以生成页面访问令牌,如下所述:


    要做到这一点,您需要将FB登录到您的网站/客户门户,并请求页面消息和管理页面权限。登录的人必须是页面管理员

    一旦您的应用被授予该页面的权限,您就可以生成页面访问令牌,如下所述:


    为Alex的答案添加一些细节,使其更完整

    在向页面订阅应用程序时,Facebook需要:

  • 知道你在说什么应用程序
  • 知道你在说什么
  • 知道您在该页面上拥有订阅应用程序的权限
  • Facebook是如何知道这一切的

    1源于Facebook登录发生在页面上下文中,事实上,Facebook的Javascript代码包含您的appId:

    js.src = 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0&appId=<YOUR_APP_ID_IS_HERE>&autoLogAppEvents=1';
    
    js.src='1〕https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0&appId=&autoLogAppEvents=1';
    
    2来自URL中用于向页面订阅应用程序的页面id:

    此处为您的\u应用程序\u ID\u/subscribed\u apps?access\u token=此处为您的\u access\u token\u

    3来自通过Facebook登录在应用程序上下文中获得的访问令牌,该令牌在用于订阅应用程序页面的URL中作为参数传递:


    您的\u访问\u令牌\u此处

    为Alex的答案添加一些细节,使其更加完整

    在向页面订阅应用程序时,Facebook需要:

  • 知道你在说什么应用程序
  • 知道你在说什么
  • 知道您在该页面上拥有订阅应用程序的权限
  • Facebook是如何知道这一切的

    1源于Facebook登录发生在页面上下文中,事实上,Facebook的Javascript代码包含您的appId:

    js.src = 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0&appId=<YOUR_APP_ID_IS_HERE>&autoLogAppEvents=1';
    
    js.src='1〕https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0&appId=&autoLogAppEvents=1';
    
    2来自URL中用于向页面订阅应用程序的页面id:

    此处为您的\u应用程序\u ID\u/subscribed\u apps?access\u token=此处为您的\u access\u token\u

    3来自通过Facebook登录在应用程序上下文中获得的访问令牌,该令牌在用于订阅应用程序页面的URL中作为参数传递:

    您的\u访问\u令牌\u在此