Media Group Telegram memungkinkan kita untuk mengirimkan beberapa foto, video, audio, atau dokumen sekaligus dalam satu bungkusan pesan menggunakan metode sendMediaGroup
Ketika sampai di artikel ini berarti anda sudah memahami pengiriman video dan gambar dengan Apps Script. Dilanjutkan kali ini dengan eksperimen mengirim 2-10 file sekaligus dalam satu kali pengiriman.
kita akan menggunakan cara URL dengan memanfaatkan Direct Link file media yang disuplai CloudinarySiLiKiDi
BATASAN PENGIRIMAN MEDIA GROUP
Dalam dokumentasi Telegram API disebutkan beberapa batasan yang harus diperhatikan saat mengirimkan media group:
- Jenis photo dengan format .JPG .PNG [tanpa transparansi] .GIF [tanpa animasi]
- Jenis video direkomendasikan dalam format .MP4
- Jenis audio bisa .MP3 .M4A [media group tidak mendukung WAV dan OGG]
- Jenis document karena dikirim via URL hanya bisa format .PDF bila selain itu dikirim dengan bungkusan .ZIP
- Jenis animation tidak bisa dikirim dalam media group
- Maksimal besar file 5 MB untuk foto dan 20 MB untuk lainnya
- Maksimal jumlah file yang dikirim 10, minimal terdiri dari 2 file
Sticker TGS dan WEBP dikirim dengan metode tersendiri sendStickerSiLiKiDi
STRUKTUR METODE sendMediaGroup
Kita akan menggunakan tiga properti dalam sendMediaGroup:
var dataMedia = {
method: "post",
payload: {
method: "sendMediaGroup",
chat_id: "ID Chat - string - wajib",
media: [
{"type": "video", "media": "URL_VIDEO"},
{"type": "photo", "media": "URL_PHOTO"},
{"type": "document", "media": "URL_DOCUMENT"},
{"type": "audio", "media": "URL_AUDIO"}
]
}
};
UrlFetchApp.fetch(telegramAPIURL + "/", dataMedia);
Anda dapat menambahkan properti opsional caption untuk masing-masing file-nya:
{
"type": "video",
"media": "URL_VIDEO",
"caption": "Keterangan video"
}
Ketika script di atas kita eksekusi, respon di Telegram muncul pesan Error 400. Bad Request: can't parse media JSON objectSiLiKiDi
PENANGANAN ERROR 400
Error ini terjadi karena properti media berbentuk array-object sedangkan Telegram API menuntut payload untuk dikirimkan dalam bentuk string berformat JSON.
Solusinya kita bungkus payload dengan fungsi JSON.stringify() untuk mengkonversi array-object menjadi string:
var dataMedia = {
method: "post",
payload: JSON.stringify({
method: "sendMediaGroup",
chat_id: "ID Chat - string - wajib",
media: [
{"type": "video", "media": "URL_VIDEO"},
{"type": "photo", "media": "URL_PHOTO"},
{"type": "document", "media": "URL_DOCUMENT"},
{"type": "audio", "media": "URL_AUDIO"}
]
})
};
UrlFetchApp.fetch(telegramAPIURL + "/", dataMedia);
Ketika script kembali dieksekusi, muncul lagi pesan berbeda Error 404. Not FoundSiLiKiDi
PENANGANAN ERROR 404
Error ini terjadi karena kita lupa memberi tahu Telegram bahwa yang dikirim adalah dalam format JSON, sehingga tambahkan properti contentType: "application/json" untuk memberi tahu Telegram tentang MIME type JSON sehingga Telegram tahu dengan akurat di bagian mana data berada.
var dataMedia = {
method: "post",
contentType: "application/json",
payload: JSON.stringify({
method: "sendMediaGroup",
chat_id: "ID Chat - string - wajib",
media: [
{"type": "video", "media": "URL_VIDEO"},
{"type": "photo", "media": "URL_PHOTO"},
{"type": "document", "media": "URL_DOCUMENT"},
{"type": "audio", "media": "URL_AUDIO"}
]
})
};
UrlFetchApp.fetch(telegramAPIURL + "/", dataMedia);
PENANGANAN ERROR GROUP SEND FAILED
Bila anda menemui pesan Error 400. Bad Request: group send failed disebabkan kemungkinan berikut:
- Kesalahan dalam penentuan properti type. Misalnya khusus dikirim dengan sendMediaGroup gambar .GIF semestinya dengan
type: "photo"bukan animation. - Kesalahan dalam grouping. Properti type yang berbeda [kecuali photo dan video] dikirim dalam satu grup. Misalnya file bertipe document satu grup dengan photo
- Terdapat file dengan format yang tidak didukung oleh metode sendMediaGroup atau bahkan dengan Telegram API. misalkan SVG, RAR, PSD, CDR, dll
Photo dan video bisa dikirim dalam satu grup sedangkan lainnya harus dengan tipe yang sama. Selengkapnya simak dokumentasi tentang InputMediaSiLiKiDi
DEMO PENGIRIMAN
Diasumsikan semua file-file media sudah anda simpan di CDN Cloudinary berikut dengan suplai direct link URL:
Media Group Video dan Photo
Hanya video dan photo yang bisa dikirim dalam satu grup secara bersamaan dan kita demokan dengan 5 file berbeda jenis: video MP4, foto JPG, logo transparan PNG, dan animasi GIF:
Beberapa catatan dengan hasil respon di Telegram seperti tampak pada gambar:
- Video MP4 autoplay hanya saja mute secara default
- Transparansi PNG hilang berganti berlatar putih
- Animasi GIF menjadi statis tanpa animasi
- Layout otomatis disesuaikan gridnya oleh Telegram
Media Group PDF dan ZIP
Media Group MP3
FINAL SCRIPT
Final Script dapat diunduh di repository.
Anda bisa lebih jauh bereksperimen dengan memanfaatkan aset online seperti yang disediakan File ExamplesSiLiKiDi
Dapatkan skrip semua materi di repository
Dukung donasi agar tutorial ini tetap operasional:
SiLiKiDi
Komentar
Posting Komentar