You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过WhatsApp Cloud API区分实时位置与标记位置?

区分WhatsApp Cloud API中的实时位置与地图选点

核心结论

WhatsApp Cloud API的Webhook负载没有专门标识「实时位置」的字段,但可以通过实时位置的「持续推送特性」来可靠区分,这是官方隐含的验证逻辑。

问题分析

你提到的通过name/address字段缺失判断实时位置的方法存在漏洞:当用户选择地图上无名称的通用点(比如空旷区域)时,负载同样不会包含这两个字段,无法和真实实时位置区分。

可靠验证方案

1. 利用实时位置的持续推送特性

当用户点击「发送实时位置」按钮时,WhatsApp会根据用户选择的时长(15分钟/1小时/8小时)持续向Webhook推送该用户的位置更新:

  • 每次推送的location对象仅包含latitude和longitude,且经纬度会随用户移动产生有效变化
  • 同一用户的实时位置消息会在设定时长内多次推送,时间戳连续递增

而地图选点是一次性推送,不会有后续的位置更新。

实现逻辑:

  • 记录用户的会话ID(from字段)和首次收到位置消息的时间戳
  • 若在预设时长内(比如10分钟)收到同一用户的多条location类型消息,且经纬度存在非误差范围内的变化,即可判定为真实实时位置

2. 辅助验证:结合消息发送频率

  • 实时位置的推送频率通常为1-5分钟一次,而地图选点只会发送一次
  • 可通过设定时间窗口(如5分钟)内的消息数量,进一步强化验证逻辑

负载示例回顾

  • 地图选点(含POI信息):
"location": {
    "address": "<LOCATION_ADDRESS>",
    "latitude": <LOCATION_LATITUDE>,
    "longitude": <LOCATION_LONGITUDE>,
    "name": "<LOCATION_NAME>"
}
  • 地图选点(无POI信息)/首次实时位置:
"location": {
    "latitude": <LOCATION_LATITUDE>,
    "longitude": <LOCATION_LONGITUDE>
}
  • 实时位置后续更新:
"location": {
    "latitude": <UPDATED_LATITUDE>,
    "longitude": <UPDATED_LONGITUDE>
}

内容的提问来源于stack exchange,提问作者Luke Kroon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:40:12