Langkah Satu: Siapkan Profil Telegram Bot Anda
Langkah pertama dalam membuat bot Telegram adalah menyiapkan profil yang pada akhirnya akan didukung oleh bot tersebut. Ini juga cara Anda mendapatkan token untuk API Telegram.
Untuk mengatur profil bot baru, masuk ke akun Telegram Anda dan mulailah percakapan dengan BotFather (@BotFather), akun resmi yang memungkinkan Anda membuat dan mengelola bot. Dalam percakapan itu, masukkan /newbot
perintah.
BotFather akan meminta Anda untuk memilih nama tampilan dan nama pengguna untuk bot Anda. Nama pengguna harus diakhiri dengan “bot” dan harus unik. Dalam contoh kami, kami telah menetapkan nama tampilan WeatherBot dan nama pengguna DifferentWeatherBot .
Setelah Anda mendapatkan nama pengguna yang valid, BotFather akan secara otomatis mendaftarkan bot Anda dan membalas dengan token untuk API Telegram, unik untuk bot itu. Pastikan untuk tidak membagikan token Anda dengan siapa pun.
Langkah Kedua: Buat Webhook untuk Bot Anda
Langkah selanjutnya dalam membuat bot Telegram adalah menyiapkan webhook yang akan berkomunikasi dengan bot Anda. Webhook adalah cara API memberi tahu Anda bahwa sesuatu telah terjadi, yang menghentikan Anda dari keharusan menanyakan API setiap beberapa menit (atau detik) untuk mengetahui apakah, misalnya, pesan baru telah dikirim.
Telegram hanya menggunakan satu jenis webhook, yang mengirimi Anda update
objek setiap kali terjadi sesuatu .
Menyiapkan webhook sangatlah mudah. Hanya ada dua hal yang perlu Anda ketahui: token API Anda (Anda harus memiliki ini dari langkah pertama) dan URL tempat Anda akan menghosting bot Anda. URL-nya akan seperti ini . Pastikan Anda memasukkan di awal URL; jika tidak, Telegram tidak akan mengirim webhook tersebut.https://yourdomain.com/yourbot.php
https
Sekarang, di browser web biasa, navigasikan ke . Voila, webhook Anda sekarang aktif dan berjalan! https://api.telegram.org/bot<yourtoken>/setwebhook?url=https://yourdomain.com/yourbot.php
Langkah Tiga: Tulis Logika untuk Bot Anda
Waktunya untuk bagian yang menyenangkan! Pada titik ini, Anda memiliki semua yang Anda butuhkan untuk menulis logika untuk bot Telegram Anda. Begini cara saya melanjutkan…
Saya melakukan terlalu sedikit pemrograman bahkan untuk memiliki IDE di komputer saya, jadi saya akan membuka Notepad dan mulai menulis kode saya di sana. Karena ini adalah PHP, pastikan untuk mengapit logika Anda dengan <?php ?>
.
Hal pertama yang harus dilakukan adalah menginisialisasi variabel yang akan memudahkan kita memanggil API Telegram. Sesederhana itu .$path = "https://api.telegram.org/bot<yourtoken>
Karena kita akan menerima pembaruan melalui webhook, mari buat dan isi array dengan data pembaruan itu: $update = json_decode(file_get_contents("php://input"), TRUE)
Sekarang, demi kenyamanan nanti, mari mengekstrak dua bagian data penting dari pembaruan itu – ID obrolan dan pesan (jika pembaruan tidak disebabkan oleh pesan baru, bidang ini mungkin kosong, dan kami akan membuat kode untuk itu nanti):
$chatId = $update["message"]["chat"]["id"];
$message = $update["message"]["text"];
Jika Anda belum menebak apa yang seharusnya dilakukan bot ini, saya ingin bot memberi tahu saya cuaca saat ini untuk lokasi pilihan saya. Untuk itu, saya akan membuat /weather [location]
perintah.
Untuk melakukan itu, mari buat if
pernyataan untuk melihat apakah pesan tersebut dimulai /weather
. Kita dapat melakukannya dengan strpos()
fungsi, yang memberi tahu kita posisi substring dalam string:
if (strpos($message, "/weather") === 0) {
}
Bersarang di dalam if
pernyataan itu, mari tulis beberapa kode untuk mengekstrak lokasi dengan memotong sembilan karakter pertama dari pesan (yaitu berapa banyak karakter yang digunakan oleh /weather
perintah, serta spasi yang akan mengikutinya):
if (strpos($message, "/weather") === 0) {
$location = substr($message, 9);
}
Jika bot ini akan digunakan dalam produksi, kami harus menambahkan beberapa pembersihan input untuk memastikan lokasi menggunakan format yang tepat. Tapi ternyata tidak, jadi kami tidak akan khawatir tentang itu.
Sekarang kita akan mendapatkan data cuaca untuk lokasi itu dari OpenWeatherMap:
$weather = json_decode(file_get_contents("http://api.openweathermap.org/data/2.5/weather?q=".$location."&appid=mytoken"), TRUE)["weather"]["main"];
Di sini kita harus menerapkan beberapa jenis penanganan kesalahan, tetapi saya tidak akan repot. Sebagai gantinya, mari berharap yang terbaik dan menembak respons bot kita menggunakan API Telegram:
file_get_contents($path."/sendmessage?chat_id=".$chatId."&text=Here's the weather in ".$location.": ". $.weather);
Secara keseluruhan, inilah tampilan kodenya:
<?php
$path = "https://api.telegram.org/bot<yourtoken>;
$update = json_decode(file_get_contents("php://input"), TRUE);
$chatId = $update["message"]["chat"]["id"];
$message = $update["message"]["text"];
if (strpos($message, "/weather") === 0) {
$location = substr($message, 9);
$weather = json_decode(file_get_contents("http://api.openweathermap.org/data/2.5/weather?q=".$location."&appid=mytoken"), TRUE)["weather"][0]["main"];
file_get_contents($path."/sendmessage?chat_id=".$chatId."&text=Here's the weather in ".$location.": ". $weather);
}
?>
Langkah Empat: Unggah Bot Anda ke Server Web Aman
Dengan logika selesai dan dibersihkan, simpan kode Anda sebagai file PHP. Kemudian, unggah file ke URL yang Anda gunakan sebelumnya untuk menyiapkan webhook.
Saya memiliki hosting web sendiri yang saya gunakan untuk situs web pribadi, jadi saya akan mengunggah file ke direktori root situs web menggunakan cPanel.
Langkah Lima: Uji, Sesuaikan, dan Banggakan Tentang Bot Baru Anda
Sekarang saatnya menguji bot Telegram baru Anda! Setelah memperbaiki beberapa bug dalam kode saya (beberapa tanda ucapan yang hilang dan penguraian data cuaca OpenWeatherMap yang salah), bot cuaca saya aktif dan berjalan. Saya memulai percakapan pribadi dengan bot saya (BotFather akan memberi Anda pegangannya) dan menguji perintah cuaca saya:
Pikiran Akhir
Itu cara kasar, tapi berhasil! Anda pasti dapat memprogram bot Telegram dalam waktu kurang dari setengah jam. Namun, jika Anda berencana menggunakan bot dalam produksi, Anda harus meluangkan waktu untuk memikirkan kasus edge: input pengguna yang tidak terduga, kegagalan API eksternal, dan sebagainya.