如何通过Facebook Checkbox插件获取姓名、个人信息并传递PSID?
关于Facebook Checkbox插件的两个问题解答
1. 如何从Facebook Checkbox插件中获取用户的名字和姓氏?
Facebook Checkbox插件本身不会直接返回用户姓名,但你可以通过以下流程获取:
- 当用户勾选插件并完成授权(opt-in)后,Facebook会向你的服务器发送
messaging_optins类型的webhook事件,事件里包含用户的PSID(Page Scoped ID)。 - 拿到PSID后,调用Facebook Graph API的用户信息端点请求姓名,具体调用格式如下:
注意:你的页面访问令牌(PAGE_ACCESS_TOKEN)需要拥有GET /v18.0/{PSID}?fields=first_name,last_name&access_token={PAGE_ACCESS_TOKEN}pages_messaging权限,且用户已授权你的页面获取基本信息。
2. 能否在Facebook Checkbox插件渲染完成时获取用户的个人信息?以及ref参数传递PSID的问题?
很遗憾,插件渲染完成时无法获取用户个人信息——此时用户还未完成授权,Facebook不会暴露任何用户身份数据(包括PSID),这是隐私机制的要求。
关于ref参数和PSID的关联:
- 你可以在初始化Checkbox插件时,把自定义ref参数嵌入配置(比如在
fb:checkbox标签中添加ref="your_custom_ref"属性)。 - 当用户勾选完成opt-in后,Facebook发送的
messaging_optinswebhook事件里,会同时包含用户的PSID和你设置的ref参数值。这样你就能直接关联PSID与自定义ref,不用等用户发送文本消息。
内容的提问来源于stack exchange,提问作者Aleksandr Denisyuk




