Wiadomości obrazkowe WhatsApp
Wiadomość obrazkowa zawiera publiczny URL, który WhatsApp pobiera w momencie wysyłki, z opcjonalnym podpisem pod spodem.
Wyślij obraz
Ustaw 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"
}
}'Pełna struktura dodaje opcjonalny caption:
Przykład kodu
{
"to": "+16505551234",
"from": "+13124495648",
"image": {
"url": "https://cdn.example.com/receipts/a1b2c3.png",
"caption": "Your receipt for order A1B2C3"
}
}image nie ma pola filename. from jest wymagany w każdej wiadomości serwisowej: numer należący do Twojego obszaru roboczego, a nie zarządzany przez Bird.
Limity
| Pole | Ograniczenie | Wymuszane przez |
|---|---|---|
| Rozmiar pliku | 5 MB | tylko WhatsApp, przy pobraniu (async) |
| Typ pliku | JPEG lub PNG | tylko WhatsApp, przy pobraniu (async) |
| caption | do 1024 znaków | Bird, przy przyjęciu (422) |
| url | bezwzględny, https, ma host, bez surowych spacji | Bird, przy przyjęciu (422) |
Bird sprawdza kształt URL-a i długość podpisu, zanim cokolwiek trafi do kolejki. Nie sprawdza rzeczywistego rozmiaru ani typu pliku; to może zrobić dopiero pobranie wykonywane przez WhatsApp w momencie wysyłki. Zobacz w hubie wysyłanie mediów przez URL, żeby dowiedzieć się, co obejmuje ta walidacja kształtu, oraz gdy media zawodzą, żeby zobaczyć, co się dzieje, gdy pobranie przez WhatsApp odrzuci plik.
Odczytywanie przychodzącego obrazu
Przychodzący obraz zawiera ten sam obiekt image oraz id i mime_type, które Bird poznał, pobierając plik. Oba są nieobecne przy odczycie wiadomości wychodzącej, ponieważ Bird nigdy nie pobierał pliku, który wysłał. Zobacz Odbieranie obrazów WhatsApp, żeby poznać pełny odczyt przychodzący, ładunek whatsapp.received i na co uważać.
Limity i tryby awarii
- Okno obsługi klienta musi być otwarte. Obrazy to wiadomości serwisowe, dostarczalne tylko w otwartym oknie; zobacz w hubie okno obsługi klienta.
- Bird odrzuca http; WhatsApp sam by go pobrał. To rozróżnienie i reszta walidacji kształtu URL-a znajdują się w hubie na stronie wysyłanie mediów przez URL.
- Za duży plik, nieprawidłowy typ MIME lub nieosiągalny URL kończą się tak samo i po naliczeniu opłaty. Zobacz w hubie gdy media zawodzą, żeby poznać media_rejected i fakt naliczania opłaty przy błędzie.
- WhatsApp przechowuje pobrany URL w pamięci podręcznej przez około 10 minut. Ponowne wysłanie identycznego URL-a w tym oknie serwuje wynik pierwszego pobrania zamiast pobierać ponownie; zmień URL (np. dodaj parametr zapytania), żeby wymusić nowe pobranie.
Następne kroki
- Wiadomości serwisowe WhatsApp: okno obsługi klienta i model wspólny dla wszystkich wiadomości serwisowych
- Wideo: ta sama struktura dla klipu wideo
- Dokumenty: dla pliku PDF, arkusza kalkulacyjnego lub innego pliku
- 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