Sign inGet started

WhatsApp 位置消息

位置消息发送一个图钉:地图上的一个点,下方可附带可选的名称和地址。本页介绍发送端;如需请求联系人分享其位置,请参阅位置请求

发送位置

设置 location.latitudelocation.longitude
const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  location: { latitude: 37.7793, longitude: -122.4193 },
});
console.log(msg.id, msg.status);
完整结构还包含 nameaddress
代码示例
{
  "to": "+16505551234",
  "from": "+13124495648",
  "location": {
    "latitude": 37.7793,
    "longitude": -122.4193,
    "name": "Ferry Building Pickup",
    "address": "1 Market St, San Francisco, CA 94105"
  }
}
address 仅在同时设置了 name 时才会向接收者显示。每条服务消息都必须包含 from:一个您的工作区拥有的号码,而非 Bird 托管的号码。

限制

字段约束执行方
latitude必填,-90 至 90,十进制度Bird,接受时校验 (422)
longitude必填,-180 至 180,十进制度Bird,接受时校验 (422)
name可选,最多 1000 个字符Bird,接受时校验 (422)
address可选,最多 1000 个字符,仅在设置了 name 时显示Bird,接受时校验 (422)
WhatsApp 自身的文档将 latitudelongitude 列为必填,但未说明数值范围;±90/±180 的范围校验以及 nameaddress 的 1000 字符上限是 Bird 自身的约束。

读取入站位置

联系人主动分享其位置或回复位置请求时,会产生一条普通的入站 location 消息。消息内容不保证完整:原始图钉可能不包含 nameaddress,入站消息还可能携带一个指向该地点的 url,而您发送的位置消息中不会出现该字段。位置不是媒体类型,因此没有文件可供获取。请参阅接收 WhatsApp 位置了解完整的入站读取、whatsapp.received 载荷以及注意事项。

限制与边界情况

  • 客服窗口必须处于开启状态。 位置发送属于服务消息,只有在窗口开启期间才能送达;请参阅中心的客服窗口
  • nameaddress 在读取时是真正可选的,而非带有回退值的可选。 原始图钉二者都没有,且 address 不会在没有 name 的情况下出现。不要假设坐标一定附带街道地址。
  • 这与位置请求不是同一类型。位置请求是一种交互类型,用于向接收者请求其位置;本页是向他们发送位置。不要混淆这两种发送结构。
  • 点击位置请求后返回的是普通的入站 location 消息,而非 interactive_reply 仅监听 interactive_reply 来捕获点击的集成会完全遗漏此消息;还必须监听入站 location

后续步骤