Setelah sebelumnya kita membahas tentang langkah-langkah membuat bot di telegram dan mendapatkan toke dari bot yang kita buat, selanjutnya kita akan membahas bagaimana membuat script autoreply dari pesan yang di kirim ke bot kita.

Berikut adalah syarat-syarat dalam membuat auto reply berbasis bot telegram menggunakan PHP

1. memiliki web server yang sudah aktif SSL

2. memiliki bot telegram yang sebelumnya sudah dibuat

3. memahami sedikit saja bahasa pemrograman PHP

4. jangan lupa sediakan camilan dan kopi atau teh

setelah sebelumnya kita membuat bot telegram dan mendapatkan token yang akan kita gunakan untuk membuat auto reply, Selanjutnya silahkan buka text editor yang biasanya anda gunakan ketika anda membuat program berbasis PHP.  disini penulis menggunakan aplikasi Dreamweaver sebagai teks editor untuk menuliskan program PHP nya.

Selanjutnya silakan mengcopy kode yang ada di bawah ini.


<?php
define('BOT_TOKEN', 'GANTI DENGAN TOKEN BOT ANDA');
define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');
function apiRequestWebhook($method, $parameters) {
if (!is_string($method)) {
error_log("Method name must be a string\n");
return false;
}
if (!$parameters) {
$parameters = array();
} else if (!is_array($parameters)) {
error_log("Parameters must be an array\n");
return false;
}
$parameters["method"] = $method;
$payload = json_encode($parameters);
header('Content-Type: application/json');
header('Content-Length: '.strlen($payload));
echo $payload;
return true;
}
function exec_curl_request($handle) {
$response = curl_exec($handle);
if ($response === false) {
$errno = curl_errno($handle);
$error = curl_error($handle);
error_log("Curl returned error $errno: $error\n");
curl_close($handle);
return false;
}
$http_code = intval(curl_getinfo($handle, CURLINFO_HTTP_CODE));
curl_close($handle);
if ($http_code >= 500) {
// do not wat to DDOS server if something goes wrong
sleep(10);
return false;
} else if ($http_code != 200) {
$response = json_decode($response, true);
error_log("Request has failed with error {$response['error_code']}: {$response['description']}\n");
if ($http_code == 401) {
throw new Exception('Invalid access token provided');
}
return false;
} else {
$response = json_decode($response, true);
if (isset($response['description'])) {
error_log("Request was successful: {$response['description']}\n");
}
$response = $response['result'];
}
return $response;
}
function apiRequest($method, $parameters) {
if (!is_string($method)) {
error_log("Method name must be a string\n");
return false;
}
if (!$parameters) {
$parameters = array();
} else if (!is_array($parameters)) {
error_log("Parameters must be an array\n");
return false;
}
foreach ($parameters as $key => &$val) {
// encoding to JSON array parameters, for example reply_markup
if (!is_numeric($val) && !is_string($val)) {
$val = json_encode($val);
}
}
$url = API_URL.$method.'?'.http_build_query($parameters);
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($handle, CURLOPT_TIMEOUT, 60);
return exec_curl_request($handle);
}
function apiRequestJson($method, $parameters) {
if (!is_string($method)) {
error_log("Method name must be a string\n");
return false;
}
if (!$parameters) {
$parameters = array();
} else if (!is_array($parameters)) {
error_log("Parameters must be an array\n");
return false;
}
$parameters["method"] = $method;
$handle = curl_init(API_URL);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($handle, CURLOPT_TIMEOUT, 60);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, json_encode($parameters));
curl_setopt($handle, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
return exec_curl_request($handle);
}
function processMessage($message) {
// process incoming message
$message_id = $message['message_id'];
$chat_id = $message['chat']['id'];
if (isset($message['text'])) {
// incoming text message
$text = $message['text'];
if (strpos($text, "/start") === 0) {
apiRequestJson("sendMessage", array('chat_id' => $chat_id, "text" => 'Hello', 'reply_markup' => array(
'keyboard' => array(array('Hello', 'Hi')),
'one_time_keyboard' => true,
'resize_keyboard' => true)));
} else if ($text === "Hello" || $text === "Hi") {
apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Nice to meet you'));
} else if (strpos($text, "/stop") === 0) {
// stop now
} else {
apiRequestWebhook("sendMessage", array('chat_id' => $chat_id, "reply_to_message_id" => $message_id, "text" => 'Cool'));
}
} else {
apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'I understand only text messages'));
}
}
define('WEBHOOK_URL', 'GANTI DENGAN ALAMAT WEB TEMPAT BOT ANDA DI LETAKKAN');
if (php_sapi_name() == 'cli') {
// if run from console, set or delete webhook
apiRequest('setWebhook', array('url' => isset($argv[1]) && $argv[1] == 'delete' ? '' : WEBHOOK_URL));
exit;
}
$content = file_get_contents("php://input");
$update = json_decode($content, true);
if (!$update) {
// receive wrong update, must not happen
exit;
}
if (isset($update["message"])) {
processMessage($update["message"]);
}
view raw bot.php hosted with ❤ by GitHub
kemudian silahkan sesuaikan pada baris ketiga, dengan token buat yang telah anda buat sebelumnya. jangan lupa juga silakan mengganti alamat webhook di baris 146 dengan alamat tempat anda menaruh script PHP Anda nantinya. contohnya adalah https://evoting.alhilalsoftware.site/bot/bot.php (itu adalah alamat website tempat bot PHP penulis buat).

setelah mengganti token dan alamat web hook pada kode diatas, Selanjutnya silakan simpan dan ditaruh di tempat web server yang kita miliki.

langkah selanjutnya yaitu mengeset web hook dengan cara yaitu buka browser anda kemudian ketikkan alamat di URL dengan alamat berikut ini:

https://api.telegram.org/botTOKENBOTANDA/setWebhook?url=ALAMAT BOT PHP ANDA

contoh

https://api.telegram.org/bot6948165:AAF9c7N_UXut4faZVm1fwIT6JMJg8g-YbcA/setWebhook?url=https://evoting.alhilalsoftware.site/bot/bot.php

kemudian tekan enter di keyboard anda.

jika berhasil maka akan tampil halaman seperti ini di browser anda



Sekarang saatnya melakukan pengetesan di aplikasi telegram kita. silakan buka bot dari telegram yang telah kita buat sebelumaya kemudian silakan pilih start Kemudian dari telegram kita akan menjawabsecara otomatis berdasarkan dari kode php yang telah kita buat sebelumnya. kita bisa memodifikasi dari balasan-balasan bot telegram agar sesuai dengan keinginan kita. bahkan Kita juga bisa mengkonekkan balasan ke database yang ada di hosting yang kita miliki. sebagai contoh kita ingin membuat bot telegram untuk melakukan pengecekan tagihan listrik ataupun tagihan air. maka kita bisa memodifikasi pada bagian PHP agar sesuai dengan keinginan kita.




demikian penjelasan membuat proyek autoreply menggunakan bot telegram. selanjutnyaakan kami bahas Bagaimana menghubungkan bot telegrammenggunakan database yang ada di hosting yang kita miliki.

Silahkan jika ingin mencoba bot yang ada di tutorial ini dengan mengklik t.me/irillampung_bot

Terima kasih semoga hari hari Anda menyenangkan.