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 .
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.//yourdomain.com/yourbot.php
https
Sekarang, di browser web biasa, navigasikan ke . Voila, webhook Anda sekarang aktif dan berjalan! //api.telegram.org/bot/setwebhook?url=//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 .
Hal pertama yang harus dilakukan adalah menginisialisasi variabel yang akan memudahkan kita memanggil API Telegram. Sesederhana itu .$path = "//api.telegram.org/bot
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["//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: