Messaggi immagine WhatsApp
Un messaggio immagine contiene un URL pubblico che WhatsApp recupera al momento dell'invio, con una didascalia opzionale sotto.
Inviare un'immagine
Imposta image.url:
const msg = await bird.whatsapp.send({
to: "+16505551234",
from: "+13124495648",
image: { url: "https://cdn.example.com/receipt.png" },
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+16505551234",
from_="+13124495648",
image={"url": "https://cdn.example.com/receipt.png"},
)
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",
Image: &bird.WhatsAppImageSend{Url: "https://cdn.example.com/receipt.png"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$image = (new WhatsAppMessageSendRequestImage())
->setUrl('https://cdn.example.com/receipt.png');
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13124495648',
image: $image,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--from +13124495648 \
--image https://cdn.example.com/receipt.png \
--to +16505551234{
"name": "whatsapp_send",
"arguments": {
"from": "+13124495648",
"image": {
"url": "https://cdn.example.com/receipt.png"
},
"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",
"image": {
"url": "https://cdn.example.com/receipt.png"
}
}'La struttura completa aggiunge un caption opzionale:
Esempio di codice
{
"to": "+16505551234",
"from": "+13124495648",
"image": {
"url": "https://cdn.example.com/receipts/a1b2c3.png",
"caption": "Your receipt for order A1B2C3"
}
}image non ha il campo filename. from è obbligatorio in 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 | 5 MB | Solo WhatsApp, al fetch (asincrono) |
| Tipo di file | JPEG o PNG | Solo WhatsApp, al fetch (asincrono) |
| caption | fino a 1024 caratteri | Bird, all'accettazione (422) |
| url | assoluto, https, con host, senza spazi grezzi | Bird, all'accettazione (422) |
Bird controlla la struttura dell'URL e la lunghezza della didascalia prima di accodare qualsiasi cosa. Non controlla la dimensione o il tipo effettivo del file: solo il fetch di WhatsApp al momento dell'invio può farlo. Consulta la pagina dell'hub invio di media tramite URL per i dettagli del controllo sulla struttura e quando i media falliscono per cosa succede quando il fetch di WhatsApp rifiuta il file.
Leggere un'immagine in entrata
Un'immagine in entrata contiene lo stesso oggetto image, più un id e un mime_type che Bird ha ricavato recuperando il file. Entrambi sono assenti nella rilettura di un messaggio in uscita, dato che Bird non ha mai recuperato il file inviato. Consulta Ricezione di immagini WhatsApp per la lettura in entrata completa, il payload whatsapp.received e gli aspetti a cui prestare attenzione.
Limiti e modalità di errore
- La finestra di servizio clienti deve essere aperta. Le immagini sono messaggi di servizio, recapitabili solo all'interno di una finestra aperta; consulta la pagina dell'hub sulla finestra di servizio clienti.
- Bird rifiuta http; WhatsApp stesso lo recupererebbe. Questa distinzione, e il resto del controllo sulla struttura dell'URL, si trovano nella pagina dell'hub invio di media tramite URL.
- Un file troppo grande, un tipo MIME errato o un URL irraggiungibile falliscono tutti allo stesso modo, e dopo l'addebito. Consulta la pagina dell'hub quando i media falliscono per media_rejected e il fatto che l'addebito avviene anche in caso di errore.
- WhatsApp mantiene in cache un URL recuperato per circa 10 minuti. Reinviare lo stesso URL entro quella finestra restituisce il primo fetch invece di recuperare di nuovo il file; varia l'URL (ad esempio con un parametro di query) per forzarne uno nuovo.
Passaggi successivi
- Messaggi di servizio WhatsApp: la finestra di servizio clienti e il modello condiviso da ogni messaggio di servizio
- Video: la stessa struttura per un video clip
- Documenti: per un PDF, un foglio di calcolo o un altro file
- Invio di messaggi WhatsApp: l'envelope 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