Messaggi di posizione WhatsApp
Un messaggio di posizione invia un segnaposto: un punto sulla mappa, con un nome e un indirizzo facoltativi sotto. Questa è la parte di invio; per chiedere a un contatto di condividere la propria posizione, vedi richieste di posizione.
Inviare una posizione
Imposta location.latitude e 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 +16505551234curl -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
}
}'La forma completa aggiunge name e address:
{
"to": "+16505551234",
"from": "+13124495648",
"location": {
"latitude": 37.7793,
"longitude": -122.4193,
"name": "Ferry Building Pickup",
"address": "1 Market St, San Francisco, CA 94105"
}
}address viene mostrato al destinatario solo quando è impostato anche name. from è obbligatorio in ogni messaggio di servizio: un numero di proprietà del tuo spazio di lavoro, non uno gestito da Bird.
Limiti
| Campo | Vincolo | Applicato da |
|---|---|---|
latitude | obbligatorio, da -90 a 90, gradi decimali | Bird, all'accettazione (422) |
longitude | obbligatorio, da -180 a 180, gradi decimali | Bird, all'accettazione (422) |
name | facoltativo, fino a 1000 caratteri | Bird, all'accettazione (422) |
address | facoltativo, fino a 1000 caratteri, mostrato solo quando name è impostato | Bird, all'accettazione (422) |
La documentazione di WhatsApp elenca latitude e longitude come obbligatori senza un intervallo numerico dichiarato; il controllo dell'intervallo ±90/±180 e il limite di 1000 caratteri su name e address sono vincoli propri di Bird.
Leggere una posizione in entrata
Quando un contatto condivide la propria posizione, spontaneamente o in risposta a una richiesta di posizione, il risultato è un normale messaggio location in entrata. Nulla è garantito: un segnaposto grezzo può arrivare senza name e senza address, e uno in entrata può anche contenere un url che rimanda al luogo, cosa che non compare mai in una posizione inviata. La posizione non è un tipo media, quindi non c'è un file da scaricare. Vedi Ricezione delle posizioni WhatsApp per la lettura completa in entrata, il payload whatsapp.received e a cosa prestare attenzione.
Limiti e casi particolari
- La finestra del servizio clienti deve essere aperta. L'invio di una posizione è un messaggio di servizio, recapitabile solo all'interno di una finestra aperta; vedi la finestra del servizio clienti dell'hub.
nameeaddresssono realmente facoltativi in lettura, non facoltativi con un valore di riserva. Un segnaposto grezzo non ha nessuno dei due, eaddressnon compare mai senzaname. Non dare per scontato che un indirizzo stradale accompagni una coppia di coordinate.- Questo non è lo stesso tipo di una richiesta di posizione. Le richieste di posizione sono un tipo interattivo che chiede al destinatario la propria posizione; questa pagina ne invia una a loro. Non confondere le due forme di invio.
- Un tap su una richiesta di posizione ritorna come un normale messaggio
locationin entrata, non come uninteractive_reply. Un'integrazione che controlla solointeractive_replyper i tap lo perde del tutto; deve anche controllare i messaggilocationin entrata.
Prossimi passi
- Messaggi di servizio WhatsApp: la finestra del servizio clienti e il modello condiviso da ogni messaggio di servizio
- Richieste di posizione: chiedere a un contatto la sua posizione invece di inviarne una
- Invio di messaggi WhatsApp: la struttura della richiesta, il modello
202e le strategie sicure per riprovare
Risorse correlate
Continua con la documentazione, le guide e gli esempi per questo argomento.