Pesan stiker WhatsApp
Pesan stiker membawa URL WebP publik yang diambil WhatsApp saat pengiriman. Ini adalah jenis media paling sederhana: tanpa caption, tanpa field opsional lain saat mengirim.
Mengirim stiker
Atur sticker.url; tidak ada yang perlu ditambahkan lagi:
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 tidak memiliki field caption, dan animated bukan sesuatu yang Anda atur saat mengirim; Bird hanya melaporkannya kembali pada stiker masuk. from wajib ada di setiap pesan layanan: nomor milik workspace Anda, bukan nomor yang dikelola Bird.
Batas
| Field | Batas | Diterapkan oleh |
|---|---|---|
| Ukuran file, statis | 100 KB | Hanya WhatsApp, saat fetch (async) |
| Ukuran file, animasi | 500 KB | Hanya WhatsApp, saat fetch (async) |
| Tipe file | Hanya WebP | Hanya WhatsApp, saat fetch (async) |
| caption | bukan field yang valid | Bird, saat accept (422, penolakan skema) |
| url | absolut, https, memiliki host, tanpa spasi mentah | Bird, saat accept (422) |
Bird memeriksa bentuk URL sebelum apa pun diantrikan; ia tidak memeriksa ukuran file sebenarnya, format, atau apakah file tersebut statis atau animasi. Hanya fetch WhatsApp sendiri saat pengiriman yang dapat melakukannya. Mengirim caption bukan error panjang; field tersebut tidak ada pada skema arm ini, sehingga gagal sebagai properti yang tidak dikenali. Lihat mengirim media melalui URL dan saat media gagal di hub.
Membaca stiker masuk
Stiker masuk membawa id, mime_type, dan animated yang dipelajari Bird dengan mengambil file tersebut. Ketiganya tidak ada pada pembacaan kembali pesan keluar, karena Bird tidak pernah mengambil atau memeriksa file yang dikirimnya. Lihat Menerima stiker WhatsApp untuk pembacaan masuk secara lengkap, payload whatsapp.received, dan hal-hal yang perlu diperhatikan.
Batas dan mode kegagalan
- Jendela layanan pelanggan harus terbuka. Stiker adalah pesan layanan, hanya dapat dikirim di dalam jendela yang terbuka; lihat jendela layanan pelanggan di hub.
- Bird menolak http; WhatsApp sendiri yang akan mengambilnya. Lihat mengirim media melalui URL di hub untuk pemeriksaan bentuk lengkap.
- Fetch yang ditolak tetap dikenakan biaya. Lihat saat media gagal di hub. Teks penolakan stiker dari WhatsApp belum diukur secara independen, jadi perlakukan pemetaan tersebut sebagai kesimpulan berdasarkan simetri, bukan dikonfirmasi per penyebab.
- animated bersifat read-only, dan hanya ada pada stiker masuk atau yang sudah di-fetch. Ini adalah penilaian WhatsApp sendiri terhadap file, bukan sesuatu yang dapat Anda deklarasikan. Apakah stiker statis atau animasi hanya memengaruhi batas ukurannya; WebP tetap wajib.
- WhatsApp meng-cache URL yang di-fetch selama sekitar 10 menit. Mengirim ulang URL yang sama dalam jendela tersebut akan menyajikan kembali fetch pertama; ubah URL untuk memaksa fetch baru.
Langkah selanjutnya
- Pesan layanan WhatsApp: jendela layanan pelanggan dan model yang digunakan bersama oleh setiap pesan layanan
- Audio: jenis media lain tanpa field caption
- Gambar: untuk foto atau grafis dengan caption
- Mengirim pesan WhatsApp: envelope permintaan, model 202, dan coba lagi yang aman
Sumber daya terkait
Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini. Sumber daya tersedia dalam bahasa Inggris.
Tonton panduannyaConnecting WhatsApp to Bird: from buying a number to a live channelPahami konsepnyaWhat is the 24-hour customer service window on WhatsApp?Gunakan alatnyaWhatsApp message builderJelajahi kemampuannyaWhatsApp
Coba praktiknya dan dapatkan ringkasan implementasi