使用Facebook Graph API获取WhatsApp商务账户分析数据遇问题求助
WhatsApp商务账户分析数据API请求故障排查
问题描述
我正在尝试用Postman向Facebook Graph API发送GET请求,获取WhatsApp商务账户的分析数据,请求结构如下:
https://graph.facebook.com/v21.0/{whatsapp-business-account-ID}?fields=analytics.start(1732672800).end(1732932000).granularity(DAY)&access_token={access-token}
已尝试操作
- 将请求类型设置为GET;
- 在Postman中添加了所有必填查询参数(fields、start_time、end_time、granularity、access_token);
- 确认access_token有效且具备
whatsapp_business_management权限。
错误响应
{ "error": { "message": "(#100) Tried accessing nonexisting field (analytics) on node type (WhatsAppBusinessPhoneNumber)", "type": "OAuthException", "code": 100, "fbtrace_id": "XXXXXXXXXXXX" } }
解答
1. analytics字段有效性确认
analytics是**WhatsApp商务账户(WhatsAppBusinessAccount节点)**的有效字段,但并非WhatsApp商务电话号码(WhatsAppBusinessPhoneNumber节点)的字段。你收到的错误提示说明请求URL中填写的ID是电话号码ID,而非商务账户的ID。
2. Postman请求正确配置及排查步骤
正确请求配置
- 确认节点ID:确保URL中的
{whatsapp-business-account-ID}是WhatsApp商务账户的ID,而非关联的电话号码ID。可通过调用GET /{ID}?fields=type验证,返回type应为WhatsAppBusinessAccount。 - 修正请求结构:保持
analytics字段的链式调用格式,无需额外拆分start_time等参数为独立查询项,正确URL示例:
https://graph.facebook.com/v21.0/{正确商务账户ID}?fields=analytics.start(1732672800).end(1732932000).granularity(DAY)&access_token={access-token}
故障排查步骤
- 校验ID类型:调用
GET /{ID}?fields=name,type,确认返回的节点类型为WhatsAppBusinessAccount; - 检查参数格式:确保
analytics的时间、粒度参数使用链式调用(.start(xxx).end(xxx).granularity(DAY)),不要拆分为独立参数; - 查看Postman请求详情:确认实际发送的URL与预期一致,无参数转义或丢失情况。
3. 权限与API版本注意事项
- 权限要求:
- 必须持有
whatsapp_business_management权限(你已满足); - 确保access_token对应的应用已获得目标商务账户的授权,授权范围包含分析数据访问权限;
- 必须持有
- API版本:
analytics字段在Graph API v13.0及以上版本可用,v21.0完全支持;- 不同版本的字段格式无差异,当前链式调用格式通用;
- 避免使用v12.0及以下废弃版本,此类版本不支持该字段。
内容的提问来源于stack exchange,提问作者Cherridev cherritech
相关产品推荐
相关产品推荐

