如何通过Facebook API获取向我主页发消息的用户ID?
获取Facebook主页对话用户ID的可行方案
你需要获取的是页面范围用户ID(PSID),该ID为用户对应单个主页的唯一标识,可直接用于拼接你需要的对话跳转链接,获取方式如下:
- 方式1:通过Messenger Webhook实时获取
给你的Facebook主页配置Webhook并订阅messages事件后,每当用户向主页发送消息,平台推送的事件 payload 中会直接返回sender.id字段,该字段值就是你需要的用户ID,无需额外转换即可直接用于拼接链接。 - 方式2:批量查询历史对话获取
调用Facebook Graph API的/{PAGE_ID}/conversations端点即可拉取主页所有历史对话,调用需要提前申请pages_messaging、pages_show_list权限,且传入有效主页访问令牌,示例请求命令:
接口返回的每个对话对象的curl -i -X GET "https://graph.facebook.com/v18.0/{你的主页ID}/conversations?access_token={你的主页访问令牌}"participants字段中,排除你的主页ID后,剩下的ID就是对应用户的PSID。 - 方式3:指定对话ID查询单个用户ID
如果你已经持有目标对话的ID,可以直接调用/{CONVERSATION_ID}?fields=participants端点,直接返回该对话的所有参与方ID,过滤主页ID后即可得到用户ID。
拼接链接时直接将获取到的PSID替换你示例中inbox/后的字段即可,生成的链接可直接跳转至对应对话页。
内容的提问来源于stack exchange,提问作者ivaldes8
相关产品推荐
相关产品推荐

