Wiadomości lokalizacyjne WhatsApp
Wiadomość lokalizacyjna wysyła pinezkę: punkt na mapie z opcjonalną nazwą i adresem pod spodem. To strona wysyłania; jeśli chcesz poprosić kontakt o udostępnienie swojej lokalizacji, zobacz żądania lokalizacji.
Wyślij lokalizację
Ustaw location.latitude i location.longitude:
const msg = await bird.whatsapp.send({
to: "+16505551234",
from: "+13124495648",
location: { latitude: 37.7793, longitude: -122.4193 },
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+16505551234",
from_="+13124495648",
location={"latitude": 37.7793, "longitude": -122.4193},
)
print(msg.id, msg.status)package main
import (
"context"
"fmt"
"log"
"os"
bird "github.com/messagebird/bird-sdk-go"
"github.com/messagebird/bird-sdk-go/option"
)
func main() {
client, err := bird.NewClient(option.WithAPIKey(os.Getenv("BIRD_API_KEY")))
if err != nil {
log.Fatal(err)
}
msg, err := client.Whatsapp.Send(context.Background(), bird.WhatsappSendParams{
To: "+16505551234",
From: "+13124495648",
Location: &bird.WhatsAppLocationSend{Latitude: 37.7793, Longitude: -122.4193},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$location = (new WhatsAppMessageSendRequestLocation())
->setLatitude(37.7793)
->setLongitude(-122.4193);
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13124495648',
location: $location,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--from +13124495648 \
--latitude 37.7793 \
--longitude -122.4193 \
--to +16505551234{
"name": "whatsapp_send",
"arguments": {
"from": "+13124495648",
"location": {
"latitude": 37.7793,
"longitude": -122.4193
},
"to": "+16505551234"
}
}curl -X POST "https://us1.platform.bird.com/v1/whatsapp/messages" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+16505551234",
"from": "+13124495648",
"location": {
"latitude": 37.7793,
"longitude": -122.4193
}
}'Pełna struktura dodaje name i address:
Przykład kodu
{
"to": "+16505551234",
"from": "+13124495648",
"location": {
"latitude": 37.7793,
"longitude": -122.4193,
"name": "Ferry Building Pickup",
"address": "1 Market St, San Francisco, CA 94105"
}
}address wyświetla się odbiorcy tylko wtedy, gdy name jest również ustawione. from jest wymagane w każdej wiadomości serwisowej: numer należący do Twojego obszaru roboczego, a nie zarządzany przez Bird.
Limity
| Pole | Ograniczenie | Wymuszane przez |
|---|---|---|
| latitude | wymagane, od -90 do 90, stopnie dziesiętne | Bird, przy akceptacji (422) |
| longitude | wymagane, od -180 do 180, stopnie dziesiętne | Bird, przy akceptacji (422) |
| name | opcjonalne, do 1000 znaków | Bird, przy akceptacji (422) |
| address | opcjonalne, do 1000 znaków, wyświetlane tylko gdy name jest ustawione | Bird, przy akceptacji (422) |
Dokumentacja WhatsApp wymienia latitude i longitude jako wymagane, bez podanego zakresu liczbowego; sprawdzenie zakresu ±90/±180 oraz limity 1000 znaków na name i address to własne ograniczenia Bird.
Odczyt przychodzących lokalizacji
Kontakt udostępniający swoją lokalizację, spontanicznie lub w odpowiedzi na żądanie lokalizacji, generuje zwykłą przychodzącą wiadomość location. Nic w niej nie jest gwarantowane: sama pinezka może dotrzeć bez name i bez address, a przychodząca lokalizacja może też zawierać url prowadzący do miejsca, który nigdy nie pojawia się w lokalizacji wysyłanej przez Ciebie. Lokalizacja nie jest typem mediów, więc nie ma pliku do pobrania. Zobacz Odbieranie lokalizacji WhatsApp, aby poznać pełny odczyt przychodzący, ładunek whatsapp.received i na co zwrócić uwagę.
Limity i przypadki brzegowe
- Okno obsługi klienta musi być otwarte. Wysłanie lokalizacji to wiadomość serwisowa, dostarczana tylko w otwartym oknie; zobacz okno obsługi klienta w hubie.
- name i address są naprawdę opcjonalne przy odczycie, a nie opcjonalne z wartością zastępczą. Sama pinezka nie zawiera żadnego z nich, a address nigdy nie pojawia się bez name. Nie zakładaj, że do pary współrzędnych dołączony jest adres.
- To nie jest ten sam typ co żądanie lokalizacji. Żądania lokalizacji to typ interaktywny, który prosi odbiorcę o jego lokalizację; ta strona opisuje wysyłanie lokalizacji do niego. Nie mieszaj tych dwóch struktur wysyłania.
- Dotknięcie żądania lokalizacji wraca jako zwykła przychodząca wiadomość location, a nie interactive_reply. Integracja obserwująca tylko interactive_reply w poszukiwaniu dotknięć całkowicie to pomija; musi również obserwować przychodzące location.
Następne kroki
- Wiadomości serwisowe WhatsApp: okno obsługi klienta i model wspólny dla wszystkich wiadomości serwisowych
- Żądania lokalizacji: poproś kontakt o lokalizację zamiast wysyłać swoją
- Wysyłanie wiadomości WhatsApp: koperta żądania, model 202 i bezpieczne ponawianie
Powiązane zasoby
Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.
Obejrzyj przewodnikConnecting WhatsApp to Bird: from buying a number to a live channelZrozum koncepcjęWhat is the 24-hour customer service window on WhatsApp?Użyj narzędziaWhatsApp message builderPoznaj możliwościWhatsApp
Wypróbuj ćwiczenie i uzyskaj brief wdrożeniowy