Jumat, 26 Juni 2020
Telegram PHP
Jika ingin auto respon terhadap Pesan masuk telegram ...begini codenya:
<?php
$TOKEN = "1248813236:AAGa6Cizh9QLuEZzq8J2frogeVaY72s79SU"; // ganti dengan token bot anda
$usernamebot= "@tessboot_bot"; // sesuaikan besar kecilnya, bermanfaat nanti jika bot dimasukkan grup.
$debug = false;
function request_url($method){
global $TOKEN;
return "https://api.telegram.org/bot" . $TOKEN . "/". $method;
}
function get_updates($offset) {
$url = request_url("getUpdates")."?offset=".$offset;
$resp = file_get_contents($url);
$result = json_decode($resp, true);
if ($result["ok"]==1)
return $result["result"];
return array();
}
function send_reply($chatid, $msgid, $text){
global $debug;
$data = array(
'chat_id' => $chatid,
'text' => $text,
'reply_to_message_id' => $msgid
);
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents(request_url('sendMessage'), false, $context);
if ($debug)
print_r($result);
}
function create_response($text, $message){
global $usernamebot;
$hasil = '';
$fromid = $message["from"]["id"];
$chatid = $message["chat"]["id"];
$pesanid= $message['message_id'];
isset($message["from"]["username"])
? $chatuser = $message["from"]["username"]
: $chatuser = '';
isset($message["from"]["last_name"])
? $namakedua = $message["from"]["last_name"]
: $namakedua = '';
$namauser = $message["from"]["first_name"]. ' ' .$namakedua;
$textur = preg_replace('/\s\s+/', ' ', $text);
$command = explode(' ',$textur,2);
switch ($command[0]) {
case '/id':
case '/id'.$usernamebot :
$hasil = "$namauser, ID kamu adalah $fromid";
break;
case '/time':
case '/time'.$usernamebot :
$hasil = "$namauser, waktu lokal bot sekarang adalah :\n";
$hasil .= "\xE2\x8C\x9A".date("d M Y")."\nPukul ".date("H:i:s");
break;
case '/start':
$hasil = "assalamualaikum saudara/i $namauser
berikut list command dari bot ini :
=> /id --> untuk menampilkan id anda
=> /time --> untuk menampilkan waktu lokal anda";
break;
case '/tes':
$hasil = "tessting asfalksf";
break;
// balasan default jika pesan tidak di definisikan
default:
$hasil = 'Terimakasih, pesan telah kami terima.';
break;
}
return $hasil;
}
if (strlen($TOKEN)<20)
die("Token mohon diisi dengan benar!\n");
// fungsi pesan yang sekaligus mengupdate offset
// biar tidak berulang-ulang pesan yang di dapat
function process_message($message){
$updateid = $message["update_id"];
$message_data = $message["message"];
if (isset($message_data["text"])) {
$chatid = $message_data["chat"]["id"];
$message_id = $message_data["message_id"];
$text = $message_data["text"];
$response = create_response($text, $message_data);
if (!empty($response))
send_reply($chatid, $message_id, $response);
}
return $updateid;
}
function process_one(){
global $debug;
$update_id = 0;
echo "-";
if (file_exists("last_update_id"))
$update_id = (int)file_get_contents("last_update_id");
$updates = get_updates($update_id);
// jika debug=0 atau debug=false, pesan ini tidak akan dimunculkan
if ((!empty($updates)) and ($debug) ) {
echo "\r\n===== isi diterima \r\n";
print_r($updates);
}
foreach ($updates as $message)
{
echo '+';
$update_id = process_message($message);
}
// update file id, biar pesan yang diterima tidak berulang
file_put_contents("last_update_id", $update_id + 1);
}
// metode poll
// proses berulang-ulang
// sampai di break secara paksa
// tekan CTRL+C jika ingin berhenti
while (true) {
process_one();
sleep(1);
}
// metode webhook
// secara normal, hanya bisa digunakan secara bergantian dengan polling
// aktifkan ini jika menggunakan metode webhook
/*
$entityBody = file_get_contents('php://input');
$pesanditerima = json_decode($entityBody, true);
process_message($pesanditerima);
*/
?>
ATau mnggunakan Node.js
Panggil di pathnya : node tes.js (misal namanya tes.js)
tes.js
const TelegramBot = require('node-telegram-bot-api');
const token = '1248813236:AAGYgrpUgIO7GhW6gp-SQ8Y5Wge6EegPiCA';
const bot = new TelegramBot(token, {polling: true});
bot.on('message', (msg) => {
var Hi = "hi";
if (msg.text.toString().toLowerCase().indexOf(Hi) === 0) {
bot.sendMessage(msg.chat.id,"Hello dear user");
}
var Hi = "/a";
if (msg.text.toString().toLowerCase().indexOf(Hi) === 0) {
bot.sendMessage(msg.chat.id,"Hello apa user");
}
});
LIBRARY
Langganan:
Posting Komentar (Atom)
Selisih Waktu Berjalan
Berikut adalah fungsi PHP yang menghitung selisih hari antara tanggal saat ini dengan tanggal 2024-08-22 . Jika tanggal saat ini kurang dari...
-
<?php // <a href='download.php?file=$file' title='Download File'>Download Dokumen</a> $direktori = ...
-
Teman2 ...mungkin sering dapat kode random..... btw ini ada share sedikit ttg membuat soal random.....yang beda disini adalah sy menggunaka...
-
<?php $sql="select `id_admin` from `$tbadmin` order by `id_admin` desc"; $jum= getJum($conn,$sql); $kd="ADM"...
Tidak ada komentar:
Posting Komentar