Pesan dokumen WhatsApp
Pesan dokumen membawa URL publik yang diambil WhatsApp pada saat pengiriman, dengan caption opsional dan nama file opsional. Ini adalah jenis media terbesar, dan satu-satunya yang membawa caption sekaligus nama file.
Mengirim dokumen
Atur document.url:
const msg = await bird.whatsapp.send({
to: "+16505551234",
from: "+13124495648",
document: { url: "https://cdn.example.com/invoices/a1b2c3.pdf" },
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+16505551234",
from_="+13124495648",
document={"url": "https://cdn.example.com/invoices/a1b2c3.pdf"},
)
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",
Document: &bird.WhatsAppDocumentSend{Url: "https://cdn.example.com/invoices/a1b2c3.pdf"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$document = (new WhatsAppMessageSendRequestDocument())
->setUrl('https://cdn.example.com/invoices/a1b2c3.pdf');
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13124495648',
document: $document,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--document https://cdn.example.com/invoices/a1b2c3.pdf \
--from +13124495648 \
--to +16505551234{
"name": "whatsapp_send",
"arguments": {
"document": {
"url": "https://cdn.example.com/invoices/a1b2c3.pdf"
},
"from": "+13124495648",
"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",
"document": {
"url": "https://cdn.example.com/invoices/a1b2c3.pdf"
}
}'Bentuk lengkapnya menambahkan caption dan filename:
Contoh kode
{
"to": "+16505551234",
"from": "+13124495648",
"document": {
"url": "https://cdn.example.com/invoices/a1b2c3.pdf",
"caption": "Your invoice for order A1B2C3",
"filename": "invoice-a1b2c3.pdf"
}
}from wajib ada di setiap pesan layanan: nomor yang dimiliki workspace Anda, bukan nomor yang dikelola Bird.
Batas
| Field | Batas | Diterapkan oleh |
|---|---|---|
| Ukuran file | 100 MB | WhatsApp saja, saat fetch (async) |
| Tipe file | PDF, Word, Excel, PowerPoint, atau plain text ditampilkan dengan baik di klien WhatsApp; tipe lain dikirim tetapi tidak didukung | WhatsApp saja, saat fetch (async) |
| caption | hingga 1024 karakter | Bird, saat accept (422) |
| filename | 1 hingga 100 karakter | Bird, saat accept (422); batas ini ditentukan oleh Bird sendiri, karena WhatsApp tidak mendokumentasikan batas panjang nama file |
| url | absolut, https, memiliki host, tanpa spasi mentah | Bird, saat accept (422) |
Bird memeriksa bentuk URL serta panjang caption dan nama file sebelum apa pun dimasukkan ke antrean. Ukuran atau tipe file sebenarnya tidak diperiksa; hanya fetch WhatsApp sendiri pada saat pengiriman yang dapat memeriksanya. Lihat mengirim media melalui URL dan ketika media gagal di hub.
Membaca dokumen masuk
Dokumen masuk membawa objek document yang sama, ditambah id dan mime_type yang dipelajari Bird dengan mengambil file tersebut. Keduanya tidak ada pada pembacaan ulang pesan keluar, karena Bird tidak pernah mengambil file yang dikirimnya, dan filename pada dokumen masuk adalah apa pun yang diberikan perangkat kontak. Lihat Menerima dokumen WhatsApp untuk pembacaan masuk secara lengkap, payload whatsapp.received, dan hal-hal yang perlu diperhatikan.
Batas dan mode kegagalan
- Jendela layanan pelanggan harus terbuka. Dokumen 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 lengkapnya.
- Fetch yang ditolak tetap dikenakan biaya, dan ini adalah jenis media yang paling sering mengalaminya. Dengan batas 100 MB, dokumen adalah hal terbesar yang dapat Anda kirim, dan Bird tidak memeriksa byte sebenarnya saat accept. Lihat ketika media gagal di hub untuk media_rejected dan fakta biaya-saat-gagal. Teks penolakan dokumen dari WhatsApp belum diukur secara independen seperti halnya gambar, jadi perlakukan pemetaan ini sebagai inferensi berdasarkan simetri, bukan konfirmasi per penyebab.
- Mengabaikan filename bukan berarti penerima tidak melihat nama. WhatsApp menurunkan nama dari path URL, yang bisa berupa hash tidak jelas atau slug alih-alih sesuatu yang mudah dibaca. Atur filename secara eksplisit untuk mengontrol apa yang benar-benar ditampilkan.
- Batas 100 karakter filename adalah pilihan Bird sendiri, bukan batas WhatsApp. WhatsApp tidak mendokumentasikan batas panjang nama file sama sekali.
- WhatsApp menyimpan cache URL yang diambil selama sekitar 10 menit. Mengirim ulang URL yang sama dalam jendela tersebut akan menyajikan hasil fetch pertama; ubah URL untuk memaksa pengambilan baru.
Langkah selanjutnya
- Pesan layanan WhatsApp: jendela layanan pelanggan dan model yang digunakan bersama oleh setiap pesan layanan
- Gambar: untuk foto atau grafik alih-alih file
- Template: untuk pesan yang dapat Anda kirim setelah jendela ditutup
- Mengirim pesan WhatsApp: envelope permintaan, model 202, dan percobaan ulang 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