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

Kirim Pesan Ke Telegram Dengan Apps Script

Dengan koneksi webhook anda bisa mulai ujicoba mengirim pesan pertama ke Telegram dari Google Apps Script.

Input User Dengan ForceReply Di Telegram

Metode ForceReply memungkinkan Bot memaksa user untuk memberikan input sebelum melanjutkan proses, dengan demikian anda dapat menggelar Step-by-Step formulir di Telegram.