Sign inGet started

Odbieranie obrazów WhatsApp

Zdjęcie lub grafika wysłana przez kontakt dociera jako wiadomość przychodząca zawierająca image: referencję do pliku zapisanego przez Bird oraz ewentualny podpis wpisany pod obrazem.

Co zawiera przychodzący obraz

Przykład kodu
{
  "id": "wam_01kya19eknftrs2s6p82asmvnh",
  "direction": "inbound",
  "from": { "phone_number": "+14155550100" },
  "to": { "phone_number": "+13124495569" },
  "status": "received",
  "image": {
    "id": "waf_01kyb2m4xq7whs0d8n3prv6tez",
    "url": "https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez",
    "mime_type": "image/jpeg",
    "caption": "Is this the right part?"
  },
  "created_at": "2026-08-25T09:04:11Z"
}
PoleCo zawiera
idZapisany plik, przekazywany jako media_id podczas pobierania bajtów
urlURL Bird, pobierany za pomocą klucza API
mime_typeTyp mediów zgłoszony przez WhatsApp dla pliku, np. image/jpeg
captionTekst wpisany przez kontakt pod obrazem; nieobecny, gdy nic nie wpisano
id i mime_type występują tylko w przychodzącym obrazie: Bird poznaje oba, pobierając plik, i nigdy nie zapisuje tego, który wysłałeś. Obraz wychodzący zwraca url, który podałeś, bez id.
Traktuj mime_type jako raport WhatsApp, a nie gwarancję, i rozgałęziaj logikę na jego podstawie zamiast na rozszerzeniu pliku w url, które go nie zawiera.

Pobieranie bajtów

url i id wskazują na ten sam zapisany plik: przekaż identyfikator wiadomości i id mediów do metody mediów kanału w dowolnym SDK, CLI lub cURL. Sekcja pobieranie przychodzących mediów w hubie zawiera to wywołanie we wszystkich językach, wraz z regułami przekierowań i nagłówków.
Wiadomość i jej media wygasają razem, 30 dni po nadejściu wiadomości; sekcja pobieranie przychodzących mediów w hubie określa to okno i to, co zwracają odczyty po jego upływie. Zapisz każdy obraz, którego potrzebujesz na dłużej, dopóki wiadomość jest jeszcze dostępna.

Ładunek webhooka

whatsapp.received zawiera gałąź image w kopercie zdarzenia, wraz z referencją mediów:
Przykład kodu
{
  "type": "whatsapp.received",
  "timestamp": "2026-08-25T09:04:11.118Z",
  "data": {
    "whatsapp_id": "wam_01kya19eknftrs2s6p82asmvnh",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
    "direction": "inbound",
    "from": { "phone_number": "+14155550100" },
    "to": { "phone_number": "+13124495569" },
    "image": {
      "id": "waf_01kyb2m4xq7whs0d8n3prv6tez",
      "url": "https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez",
      "mime_type": "image/jpeg",
      "caption": "Is this the right part?"
    },
    "tags": null,
    "metadata": null
  }
}
Webhook uruchamia się, gdy wiadomość dociera, co jest jednocześnie początkiem okna retencji, więc endpoint kolejkujący pobranie zamiast wykonywać je natychmiast ma całe okno na nadrobienie.

Na co uważać

  • Podpis należy do kontaktu. Dociera jako zwykły tekst bez formatowania ani informacji o encjach, więc renderuj go jako tekst.
  • Jeden obraz na wiadomość. Kontakt wysyłający kilka zdjęć generuje kilka wiadomości przychodzących, każda z własnym id i własną referencją mediów. Grupuj je po from i czasie nadejścia; żadna tablica ich nie zbiera.

Następne kroki