Langsung ke konten utama

Base64url Encode Dengan Apps Script

Telegram merekomendasikan untuk melakukan enkoding ke Base64url pada parameter yang disisipkan pada Deep Linking. Apps Script menyediakan Utilities untuk melakukan enkoding ke Base64url tersebut.

BAHAN BAKU

Untuk mengimplementasikan eksperimen ini perlu dipersiapkan beberapa hal:

  1. Bot Telegram berikut API Token, anda dapat menyimak cara membuatnya dan mendapatkan API Token pada artikel ini.
  2. Satu file Apps Script, anda bisa menyimak cara membuatnya dan deployment Web Apps di artikel ini.
  3. Script eksperimen ini yang dapat unduh atau salin dari repository.
  4. ID User anda sebagai admin bot yang akan digunakan untuk menampung keterangan error bila terjadi kendala, gunakan @simrsinfobot untuk mengetahui ID User anda.
Bila anda menemui kendala saat deployment silahkan simak cara penanganannya pada artikel iniSiLiKiDi

Sebagai gambaran sederhana pentingnya enkoding ketika membagikan tautan file dokumen ".../Data Oktober.pdf". Tentunya HTTP tidak memperkenankan adanya spasi kosong, sehingga dengan enkoding tidak perlu lagi mengubah nama file untuk menghilangkan spasi kosong melainkan dienkoding ke kode %20 menjadi ".../Data%20Oktober.pdf".

Simak artikel Command Bot Pada Deep Linking Telegram tentang menyisipkan parameter dalam Deep LinkingSiLiKiDi

KONVERTER BASE64 DI APPS SCRIPT

Apps Script menyediakan metode enkoding Base64 dalam varian normal dan web safe lengkap dengan enkoding dan dekodingnya:

Hasil Encode berbentuk string sehingga bisa digunakan langsung, sedangkan Decode berbentuk binary BLOB perlu penanganan khusus.

Varian Base64 Web Safe lebih disarankan karena lebih ramah dan bisa beradaptasi lebih baik dengan lingkungan internetSiLiKiDi

ENCODE BASE64

Misalkan kita akan enkoding nama file "The Power of Blank.pdf" ke Base64 Web Safe menggunakan notasi berikut:

Utilities.base64EncodeWebSafe( "The Power of Blank.pdf" );

Hasil enkoding berbentuk string sehingga kita bisa langsung mengolahnya sebagai sebuah teks:

VGhlIFBvd2VyIG9mIEJsYW5rLnBkZg==

DECODE BASE64

Untuk mendekoding VGhlIFBvd2VyIG9mIEJsYW5rLnBkZg== kita gunakan dekoder Web Safe pula dengan notasi berikut:

var base64Decode = Utilities.base64DecodeWebSafe( "VGhlIFBvd2VyIG9mIEJsYW5rLnBkZg==" );

Hasil dekoding tidak berbentuk string melainkan binary BLOB sehingga kita perlu mengkoversinya ke bentuk string dengan newBlob() dan getDataAsString():

Utilities.newBlob( base64Decode ).getDataAsString();

Barulah kita dapatkan konten aslinya dari hasil konversi tersebut:

"The Power of Blank.pdf"
Kesimpulannya: enkoding Base64 berguna untuk memelihara originalitas dari suatu nilai parameter sekaligus adaptif dengan standar internetSiLiKiDi

FINAL SCRIPT

Final Script ini merupakan bagian dari pembahasan dalam artikel Random Seed, Secret Key, Token Google, dan oAuth Dengan Apps Script. Pada artikel selanjutnya kita akan mencoba bereksperimen menerapkannya dalam Deep Linking Telegram dengan membungkus beberapa nilai parameter sekaligus dalam satu parameter dengan bantuan enkoding Base64.

Dapatkan skrip semua materi di repository

Dukung donasi agar tutorial ini tetap operasional:
Trakteer Saya SiLiKiDi

Komentar

Postingan populer dari blog ini

Mengirim Gambar Foto Ke Chat Telegram Dengan Apps Script

Mengirim file foto yang disimpan di CDN Cloudinary ke chat Telegram dengan Google Apps Script menggunakan metode sendPhoto

Tombol Menu Reply Markup Dengan Custom Keyboard dan Inline Keyboard

Membuat tombol menu di Bot Telegram dapat menambah aktraktif tampilan bot dan tentunya mengganti peran command bot dari yang masih konvensional dengan kode karakter.

ZIP Folder Google Drive Dengan Apps Script

Anda dapat memanfaatkan Utilities ZIP yang disediakan Apps Script untuk membuat ZIP kompresi folder atau file untuk kemudian disimpan sebagai arsip di Google Drive atau dikirimkan ke Telegram.