WooCommerce订单状态更新时发送FB Messenger消息及PSID获取咨询
WooCommerce站点获取Facebook Messenger PSID的实现方案
核心结论
PSID(页面范围用户ID)是Facebook为每个用户、对应单个Facebook公共主页生成的唯一身份标识,无法自行生成,但确实可以在用户首次通过Facebook授权登录你的站点时直接获取,无需额外后续操作。
具体操作步骤
- 提前将你的Facebook应用和用来发送Messenger通知的Facebook公共主页完成绑定,PSID和单主页强绑定,不同主页拿到的同一个用户的PSID不通用。
- 配置Facebook登录的OAuth授权项:除常规的
public_profile权限外,额外申请pages_messaging权限,同时在授权返回字段中主动声明需要返回psid字段。 - 用户完成首次登录授权后,Facebook返回的授权响应包中会直接携带对应用户的PSID值,你可以通过WordPress原生方法
update_user_meta( $current_user_id, 'fb_messenger_psid', $返回的psid值 )将PSID和站点用户ID关联存储到用户元数据中。
后续通知推送逻辑
WooCommerce触发订单状态变更钩子时,先通过订单关联的用户ID调用get_user_meta( $user_id, 'fb_messenger_psid', true )取出提前存储的PSID,传入Messenger发送API即可完成订单通知推送。
注意:如果用户此前没有主动给你的公共主页发过消息,你需要在用户登录时增加引导步骤,让用户确认同意接收订单类通知,否则主动推送消息会被Facebook接口拦截。
内容的提问来源于stack exchange,提问作者sunsunsun2200
相关产品推荐
相关产品推荐

