Messaggi sticker su WhatsApp
Un messaggio sticker contiene un URL WebP pubblico che WhatsApp recupera al momento dell'invio. È il tipo di media più semplice: nessuna didascalia, nessun altro campo opzionale in fase di invio.
Inviare uno sticker
Imposta sticker.url; non c'è altro da aggiungere:
const msg = await bird.whatsapp.send({
to: "+16505551234",
from: "+13124495648",
sticker: { url: "https://cdn.example.com/stickers/thumbs-up.webp" },
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+16505551234",
from_="+13124495648",
sticker={"url": "https://cdn.example.com/stickers/thumbs-up.webp"},
)
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",
Sticker: &bird.WhatsAppStickerSend{Url: "https://cdn.example.com/stickers/thumbs-up.webp"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$sticker = (new WhatsAppMessageSendRequestSticker())
->setUrl('https://cdn.example.com/stickers/thumbs-up.webp');
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13124495648',
sticker: $sticker,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--from +13124495648 \
--sticker https://cdn.example.com/stickers/thumbs-up.webp \
--to +16505551234{
"name": "whatsapp_send",
"arguments": {
"from": "+13124495648",
"sticker": {
"url": "https://cdn.example.com/stickers/thumbs-up.webp"
},
"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",
"sticker": {
"url": "https://cdn.example.com/stickers/thumbs-up.webp"
}
}'sticker non ha il campo caption e animated non è un valore da impostare in fase di invio; Bird lo riporta solo su uno sticker in entrata. from è obbligatorio su ogni messaggio di servizio: un numero di proprietà del tuo spazio di lavoro, non uno gestito da Bird.
Limiti
| Campo | Limite | Applicato da |
|---|---|---|
| Dimensione file, statico | 100 KB | Solo WhatsApp, al fetch (asincrono) |
| Dimensione file, animato | 500 KB | Solo WhatsApp, al fetch (asincrono) |
| Tipo di file | Solo WebP | Solo WhatsApp, al fetch (asincrono) |
| caption | campo non valido | Bird, all'accettazione (422, rifiuto dello schema) |
| url | assoluto, https, con host, senza spazi grezzi | Bird, all'accettazione (422) |
Bird controlla la forma dell'URL prima che qualsiasi cosa venga accodata; non verifica la dimensione effettiva del file, il formato o se è statico o animato. Solo il fetch di WhatsApp al momento dell'invio può farlo. Inviare un caption non è un errore di lunghezza: il campo non esiste nello schema di questo tipo, quindi viene rifiutato come proprietà non riconosciuta. Vedi nell'hub invio di media tramite URL e quando un media fallisce.
Leggere uno sticker in entrata
Uno sticker in entrata contiene un id, mime_type e animated che Bird ha ricavato recuperando il file. Tutti e tre sono assenti nella rilettura di un messaggio in uscita, perché Bird non ha mai recuperato né ispezionato il file inviato. Vedi Ricezione degli sticker WhatsApp per la lettura completa in entrata, il payload whatsapp.received e gli aspetti a cui prestare attenzione.
Limiti e modalità di errore
- La finestra del servizio clienti deve essere aperta. Gli sticker sono messaggi di servizio, recapitabili solo all'interno di una finestra aperta; vedi nell'hub la finestra del servizio clienti.
- Bird rifiuta http; WhatsApp stesso lo recupererebbe. Vedi nell'hub invio di media tramite URL per il controllo completo della forma.
- Un fetch rifiutato viene comunque addebitato. Vedi nell'hub quando un media fallisce. Il testo di rifiuto specifico per gli sticker da parte di WhatsApp non è stato misurato in modo indipendente: considera la mappatura come dedotta per simmetria anziché confermata per singola causa.
- animated è in sola lettura ed è presente solo su uno sticker in entrata o recuperato. È il verdetto di WhatsApp sul file, non qualcosa che puoi dichiarare. Il fatto che uno sticker sia statico o animato cambia solo il limite di dimensione; WebP è obbligatorio in entrambi i casi.
- WhatsApp memorizza in cache un URL recuperato per circa 10 minuti. Reinviare lo stesso URL entro quella finestra ripropone il primo fetch; varia l'URL per forzarne uno nuovo.
Passaggi successivi
- Messaggi di servizio WhatsApp: la finestra del servizio clienti e il modello condiviso da ogni messaggio di servizio
- Audio: un altro tipo di media senza campo didascalia
- Immagini: per una foto o un elemento grafico con didascalia
- Invio di messaggi WhatsApp: la struttura della richiesta, il modello 202 e i tentativi sicuri
Risorse correlate
Prosegui con la documentazione, le guide e gli esempi per questo argomento. Le risorse sono in inglese.
Guarda la guidaConnecting WhatsApp to Bird: from buying a number to a live channelComprendi il concettoWhat is the 24-hour customer service window on WhatsApp?Usa lo strumentoWhatsApp message builderEsplora la funzionalitàWhatsApp
Prova l'esercitazione e ottieni un brief di implementazione