Hallo Pemirsa,
Saya akan berbagi sedikit pengetahuan tentang cara memprogram Bot Telegram menggunakan Bahasa Pemrograman Free Pascal dan Lazarus IDE. Cara ini menggunakan unit dan library murni bawaan Free Pascal dan Lazarus sehingga tidak perlu repot memasang komponen pihak ketiga atau perkakas tambahan yang lumayan merepotkan.
Memprogram Telegram Bot atau Telebot sejatinya dapat dilakukan dengan bahasa pemrograman apa saja karena pertukaran data dilakukan melalui HTTP Request menggunakan data format Javascript Object Notation alias JSON. Alhasil, kita hanya memerlukan komponen HTTP Client untuk mengambil dan mengirimkan data ke server Telegram. Sebelum lebih jauh membahas cara memprogram Telebot dengan Bahasa Pemrograman Objek Pascal dan Lazarus, mari kita mulai dengan membuat sebuah Bot Telegram.
1. Membuat Bot Telegram
Pastikan anda sudah memasang aplikasi Telegram di Smartphone. Buka aplikasi tersebut kemudian dalam kolom pencarian ketik kata kunci BotFather. Pada daftar tampilan yang muncul pilih yang bercentang biru seperti gambar di bawah ini.
Berikutnya ketik perintah /newbot kemudian balas dengan mengirimkan nama dan username bot. Pada contoh ini namanya adalah Free Pascal Bot dan usernamenya adalah freepascalbot. Perhatikan bahwa untuk pemilihan username pastikan mengandung kata bot di dalamnya dan disambung tanpa menggunakan spasi. Jika tidak ada kesalahan, bot telah berhasil dibuat dan BotFather akan membalas dengan Token yang digunakan untuk berkomunikasi dengan bot melalui layanan Application Programming Interface (API). Simpan token tersebut karena akan digunakan nantinya. Perhatikan gambar di bawah ini.
2. Memprogram Bot Telegram Menggunakan Lazarus Free Pascal
Saya akan memastikan bahwa memprogram Telegram Bot menggunakan Free Pascal sangatlah mudah karena karena semua unit dan komponen yang diperlukan telah tersedia. Seara umum, ada 2 library yang diperlukan, pertama untuk kebutuhan berkomunikasi melalui HTTP Request dan kedua untuk kebutuhan mengelola data dengan format JSON.
Pada intinya, kemampuan untuk mengelola data format JSON adalah kunci utama dalam memprogram Telegram Bot. Saya telah membuat sebuah projek sederhana yang dapat anda unduh melalui link github ini. Projek sederhana tersebut memiliki kemampuan sbb:
b. Mengambil pesan masuk (inbox) kemudian menampilkannya ke dalam komponen ListBox
c. Mengirimkan pesan berdasarkan chat_id yang diperoleh dari pesan masuk (inbox).
fpjson, jsonparser, fphttpclient, opensslsockets, StdCtrls;
rawData : ansistring; JsonPar : TJSONParser; jsonDoc : TJSONObject; TELEGRAM_BOT_URL : string;
procedure TForm1.Button3Click(Sender: TObject); var id, first_name, username : string; begin TELEGRAM_BOT_URL := 'https://api.telegram.org/'+Token+'/getMe'; // Melakukan HTTP Request dengan TFPHTTPClient try rawData := TFPHTTPClient.SimpleGet(TELEGRAM_BOT_URL); except on E: Exception do begin ShowMessage('Gagal membaca sumber data: ' + E.Message); Exit; end; end; // Memformat/Parse Output yang diperoleh dari HTTP Request menjadi JsonDoc try JsonPar := TJSONParser.Create(rawData); JsonDoc := TJSONObject(JsonPar.Parse); except on E: Exception do begin ShowMessage('Informasi tidak valid: ' + E.Message); Exit; end; end; // Membreakdown Hasil Parse (JsonDoc) kemudian menyimpannya ke dalam variabel if jsonDoc.findpath('ok').AsBoolean then begin // Jika Result tidak kosong if (jsonDoc.findpath('result').Count <> 0) then begin if (jsonDoc.findpath('result').FindPath('id') <> nil) then id := jsonDoc.findpath('result').FindPath('id').AsString; if (jsonDoc.findpath('result').FindPath('first_name') <> nil) then first_name := jsonDoc.findpath('result').FindPath('first_name').AsString; if (jsonDoc.findpath('result').FindPath('username') <> nil) then username := jsonDoc.findpath('result').FindPath('username').AsString; // Menampilkan informasi bot dalam dialog informasi ShowMessage('Bot ID : '+id+sLineBreak+'Bot Name : '+first_name+sLineBreak+'Username : '+username); end; end; end;