已关联Facebook主页,如何将Messenger平台(Bot)关联至地点子页面?
解决地点子页面Messenger Bot关联及Access Token获取问题
Got it, let's work through this step by step—this is a common hiccup when dealing with Facebook Pages and their location subpages. Here's how to get the access token you need and link your Messenger bot properly:
1. 先确认你的权限配置
- 首先要确保你是地点子页面的管理员或编辑,并且在Facebook Business Settings里,你的账号对该子页面拥有
pages_show_list和pages_messaging权限。很多时候拿不到token都是因为权限不足,先去检查这一步:- 打开Facebook Business Settings,找到你的地点子页面
- 查看你的角色,确保是Admin/Editor
- 确认权限列表里包含上述两个必要权限
2. 通过Graph API获取子页面的Access Token
你需要先从主页面的长期令牌入手,再拿到子页面的专属token:
- 第一步:获取主页面的长期访问令牌
- 打开Graph API Explorer,选择你的主页面,请求
pages_show_list权限,获取短期令牌 - 用短期令牌兑换长期令牌(有效期60天),调用这个端点:
curl -X GET "https://graph.facebook.com/v18.0/{main-page-id}/access_token?grant_type=fb_exchange_token&client_secret={你的应用密钥}&fb_exchange_token={短期令牌}"
- 打开Graph API Explorer,选择你的主页面,请求
- 第二步:获取地点子页面的token
- 用主页面的长期令牌调用
/locations端点,返回所有关联的地点子页面及对应的token:curl -X GET "https://graph.facebook.com/v18.0/{main-page-id}/locations?access_token={主页面长期令牌}" - 响应里的每个子页面条目都会包含
access_token字段,这就是你要的子页面专属token
- 用主页面的长期令牌调用
3. 关联Messenger Bot到地点子页面
拿到token后,有两种方式完成关联:
- 方式一:通过Facebook Business Suite
进入地点子页面的设置,找到「Messenger」选项,选择你已关联主页面的Bot应用完成绑定 - 方式二:通过Messenger Platform API
直接用子页面的token调用API配置Bot,比如设置问候语:curl -X POST "https://graph.facebook.com/v18.0/{子页面ID}/messenger_profile" \ -H "Content-Type: application/json" \ -d '{ "greeting": [ { "locale": "default", "text": "Hi there! How can we assist you with this location?" } ] }' \ -d "access_token={子页面Access Token}"
4. 常见问题排查
- 如果
/locations返回空:检查主页面的「Locations」设置,确认地点子页面已经正确关联 - 如果出现权限错误:确保你的应用已经通过
pages_messaging权限审核(测试阶段可以用测试用户/页面验证) - 长期令牌过期:重新用主页面的短期令牌兑换新的长期令牌,再获取子页面token
内容的提问来源于stack exchange,提问作者Volodymyr Prasin
相关产品推荐
相关产品推荐

