Cara Membuat Bot Telegram Menggunakan PHP dalam Waktu Kurang Dari 30 Menit


Telegram adalah layanan pesan instan populer yang membanggakan keamanannya. Ia memiliki semua fitur yang Anda harapkan dari platform obrolan modern, termasuk chatbots : agen berbasis perangkat lunak yang dapat Anda program untuk membaca dan menanggapi pesan pengguna lain.Dalam panduan singkat ini, saya akan memandu Anda tentang bagaimana Anda dapat menulis bot Telegram Anda sendiri dalam waktu kurang dari 30 menit menggunakan PHP.

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 /newbotperintah.

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 updateobjek 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.phphttps

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 ifpernyataan 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 ifpernyataan itu, mari tulis beberapa kode untuk mengekstrak lokasi dengan memotong sembilan karakter pertama dari pesan (yaitu berapa banyak karakter yang digunakan oleh /weatherperintah, 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.

Leave a Reply

Your email address will not be published. Required fields are marked *