Setiap user, group, channel, termasuk bot Telegram dapat memiliki Deep Linking dari username. Khususnya Bot dapat kita sisipkan command bot pada Deep Linking bot tersebut untuk mengirimkan parameter nilai tertentu saat bot diaktifkan oleh user.
BAHAN BAKU
Untuk mengimplementasikan eksperimen ini perlu dipersiapkan beberapa hal:
- Bot Telegram berikut API Token, anda dapat menyimak cara membuatnya dan mendapatkan API Token pada artikel ini.
- Satu file Apps Script, anda bisa menyimak cara membuatnya dan deployment Web Apps di artikel ini.
- Script eksperimen ini yang dapat unduh atau salin dari repository.
- ID User anda sebagai admin bot yang akan digunakan untuk menampung keterangan error bila terjadi kendala, gunakan @simrsinfobot untuk mengetahui ID User anda.
Di dalam script terdapat beberapa konstata yang harus anda isi dengan ID, API TOKEN, dan URL file bahan baku milik anda:
Bila anda menemui kendala saat deployment silahkan simak cara penanganannya pada artikel iniSiLiKiDi
DEEP LINKING vs MOBILE DEEP LINKING
Deep Linking tetap menggunakan notasi URL dengan awalan protokol https://. Sedangkan Mobile Deep Linking menggunakan awalan inisial aplikasi yang bersangkutan seperti tg:// adalah URL untuk memanggil aplikasi Telegram atau fb:// untuk facebook dan ebay:// untuk memanggil aplikasi eBay.
Deep Linking dapat dibuka di semua perangkat termasuk perangkat mobile, sedangkan Mobile Deep Linking hanya bisa dibuka di perangkat mobile sajaSiLiKiDi
DEEP LINKING USERNAME TELEGRAM
Deep linking hanya muncul saat akun bersifat publik dan opsional kecuali bot wajib disetel saat pertama kali dibuat:
Deep linking username Telegram yang paling populer diawali dengan notasi t.me/[username]. Sehingga bila username dari bot adalah @simrsjsonbot maka notasinya dapat diawali pula dengan protokol https atau tidak tergantung platform:
Kelebihan lainnya dari Telegram ada di sisi pengamanan privasi Deep Linking tersebut yang dapat anda simak di siniSiLiKiDi
PARAMETER DEEP LINKING
Telegram memperkenankan penyisipan parameter dalam public link username, hanya saja terbatas pada parameter command /start. Command /start merupakan command default dalam inisiasi pertama user berkomunikasi dengan Bot.
Parameter yang disisipkan berupa alfanumerik atau karakter lain yang ramah URL encode dan dalam satu rangkaian tanpa spasi:
https://t.me/simrsjsonbot?start=Alohalooo
PENGOLAHAN PARAMETER
Saat deep linking dieksekusi, Telegram akan mengirimkan JSON update yang di dalamnya terdapat parameter yang disertakan bersama command /start dalam properti text objek message.
Dari gambar di atas tampak nilai dari properti "text" adalah "/start Alohalooo" di mana parameter dipisahkan dengan spasi kosong dari command /start.
Banyak cara untuk memilah parameter salah satunya kita gunakan fungsi split() yang akan menghasilkan sebuah array yang berisi pemisahan command /start menjadi elemen pertama [0] sedangkan parameter menjadi elemen kedua [1]:
let parameter = data.message.text.split(" ")[1]
Anda bisa melihat contoh JSON dari deep linking ini di DEEP-LINKING-START.jsonSiLiKiDi
Setelah berhasil dipisahkan dan ditampung dalam satu variabel, selanjutnya karena berbentuk string bisa anda olah kemudian sesuai kebutuhan. Misalkan akan kita kirim balik ke user nilai paramter tersebut dengan metode sendMessage:
let dataPesan = {
method: "post",
payload: {
method: "sendMessage",
chat_id: String( data.message.chat.id ),
text: String( data.message.text.split(" ")[1] )
}
};
let response = UrlFetchApp.fetch(telegramAPIURL + "/", dataPesan);
Logger.log( response.getContentText() );
FINAL SCRIPT
Final Script dapat diunduh di repository dan berikut hasil eksekusi di Bot Telegram:
Dapatkan skrip semua materi di repository
Dukung donasi agar tutorial ini tetap operasional:
SiLiKiDi
Komentar
Posting Komentar