Membuat Telegram Bot menggunakan PHP : Webhook dan Localhost via Ngrok

Pada postingan ini kita akan membuat Telegram bot menggunakan PHP, metode webhook, dan ngrok. Untuk membuat bot menggunakan metode webhook, kita perlu memahami konsep dasar metode webhook dan long polling. Saya telah menjelaskannya pada postingan ini : Membuat Telegram Bot Menggunakan PHP : Long Polling.

Pada tutorial ini, anda akan membuat webhook pada server localhost menggunakan metode webhook, dan tidak perlu memiliki server yang dihosting di internet.

Aplikasi yang Dibutuhkan

Untuk membuat Telegram bot menggunakan metode webhook dan PHP, kita memerlukan :

  1. Aplikasi Telegram. Download link : telegram.org.
  2. Ngrok. Download link : ngrok.com/download.
  3. PHP server (disarankan menggunakan XAMPP). Cek postingan saya tentang ini : #1 Tutorial Pemrograman Web – Menginstall XAMPP Server.

Menggunakan metode webhook, kita biasanya diharuskan untuk memiliki server atau website yang dihosting di internet, dan dapat diakses lewat internet kapanpun dan dimanapun.

Namun pada tutorial ini, kita tidak perlu hosting, karena terkadang biayanya cukup mahal. Hosting tersebut dapat digantikan dengan ngrok, sehingga kita tetap bisa menggunakan localhost. Saya akan jelaskan lebih lanjut pada bagian berikutnya.

Membuat Bot lewat Botfather

  1. Buka aplikasi Telegram, cari user @BotFather.
  2. Klik /start pada bagian bawah chat.
  3. Klik /newbot untuk membuat bot baru. BotFather akan menanyakan nama bot dan username.
  4. Setelah mengetikkan nama bot dan username, anda akan menerima chat yang berisi token bot.
    Creating Telegram Bot
  5. Selamat, anda baru saja membuat sebuah bot. Namun tentu saja bot tersebut tidak akan berfungsi apa apa karena belum diisi dengan program.

Membuat Program PHP untuk Telegram Bot

  1. Start apache web server pada localhost anda. Jika anda tidak tahu bagaimana melakukan ini, silahkan baca postingan ini : #1 Tutorial Pemrograman Web – Menginstall XAMPP Server.
  2. Untuk membuat bot tersebut hidup, kita perlu membuat sebuah project baru pada folder htdocs. Buatlah sebuah folder bernama webhook, lalu di dalam folder tersebut, lalu kita buat sebuah file baru bernama index.php.
  3. Copy dan paste script php ini ke dalam file index.php tersebut.
    <?php
    $content = file_get_contents("php://input");
    if($content){
        $token = '<YOUR BOT TOKEN>';
        
        $apiLink = "https://api.telegram.org/bot$token/";
        
        echo '<pre>content = '; print_r($content); echo '</pre>';
        $update = json_decode($content, true);
        if(!@$update["message"]) $val = $update['callback_query'];
        else $val = $update;
        
        $chat_id = $val['message']['chat']['id'];
        $text = $val['message']['text'];
        $update_id = $val['update_id'];
        $sender = $val['message']['from'];
        ?>
        <b>There is a message :</b>
        <br /><br />
        <b>Username : </b> <?php echo $sender['username']; ?> <br />
        <b>Sender's Name : </b> <?php echo $sender['first_name'].' '.$sender['last_name']; ?> <br />
        <b>Text Message : </b> <?php echo $text; ?> <br /><br />
        <?php 
        
        file_get_contents($apiLink . "sendmessage?chat_id=$chat_id&text=You just sent ".$text);
        echo 'Response sent.<br /><br />';
    } else echo 'Only telegram can access this url.';
    
    ?>

    Ganti <YOUR BOT TOKEN> pada baris ke 4 dengan token yang dikirim oleh BotFather sebelumnya.

  4. Sekarang mari kita jalankan script tersebut. Buka browser anda, lalu ketik localhost/webhook. Anda akan melihat hasil seperti ini :
    testing webhook telegram bot 1

Setting ngrok

Konsep dasar dari ngrok adalah sangat sederhana. Dengan ngrok, anda bisa mengakses localhost anda dari internet, seolah – olah server anda dihosting di suatu tempat.

  1. Pertama – tama, kita download ngrok di sini.
  2. Extract file hasil download di komputer anda.
  3. Buka Windows Command Prompt (cmd), lalu masuk ke folder tempat anda extract file hasil download tersebut melalui cmd. Cek capture pada poin no. 4.
  4. Di dalam folder, ketik : ngrok.exe http 80
    set up ngrok
  5. Jika berhasil, anda akan melihat hasil seperti ini :
    ngrok started
  6. Periksa bagian ‘Forwarding’. Sekarang mari kita periksa hasilnya di browser. Pada contoh yang saya gunakan, saya perlu mengakses : https://d36fa284.ngrok.io/webhook.
  7. Yess, cukup mudah bukan untuk membuat localhost kita bisa diakses lewat internet. Anda tentu saja bisa mengaksesnya lewat perangkat manapun selama terhubung ke internet. Pada dasarnya, ngrok telah mengubah localhost anda menjadi d36fa284.ngrok.io yang dapat diakses lewat internet. Anda juga bisa cek project lain yang ada di folder htdocs anda dengan mengakses https://d36fa284.ngrok.io/<project apapun di dalam htdocs>.
  8. Sekarang, saya perlu memberi tahu Telegram, bahwa saya memiliki server yang berjalan pada https://d36fa284.ngrok.io. Buka browser anda, lalu ketik :

    https://api.telegram.org/bot<YOUR BOT TOKEN>/setwebhook?url=https://d36fa284.ngrok.io/webhook/

    Ganti <YOUR BOT TOKEN> dengan token bot anda. Jangan lupa tanda slash di akhir.

    Ganti juga d36fa284.ngrok.io sesuai dengan bagian ‘Forwarding’ pada ngrok anda.

  9. Selesai sudah kita melakukan setting ngrok dan webhook. Jika semuanya benar, anda seharusnya melihat hasil seperti ini :
    set webhook telegram bot
  10. Sekarang mari kita lihat log yang disediakan oleh ngrok. Buka localhost:4040 pada browser anda.
    ngrok log url
  11. Sekarang, setiap kali ada seseorang yang mengirimkan chat ke bot yang baru saja anda buat, bot tersebut akan memberikan balasan. Mari kita cek ke aplikasi Telegram.
    test bot webhook

Begitulah cara untuk membuat bot Telegram menggunakan metode webhook, namun tidak perlu memiliki website publik untuk menentukan url webhook. Anda bisa mengedit script php jika ingin bot memberikan respon yang berbeda sesuai kebutuhan. Jika anda memiliki pertanyaan atau kendala, silahkan tanyakan pada kolom komentar.

13.513 comments

  1. best store bought male enhancement pills

    Woah! I’m really enjoying the template/theme of this site.
    It’s simple, yet effective. A lot of times it’s challenging to get that “perfect balance” between superb
    usability and visual appeal. I must say you’ve done
    a awesome job with this. Also, the blog loads very quick for me on Firefox.
    Excellent Blog!

  2. Aleida

    Wow, superb blog layout! How long have you been blogging for?

    you made blogging look easy. The overall look
    of your web site is excellent, let alone the content!

  3. Rena

    You’ve made some really good points there. I checked on the net for additional information about
    the issue and found most individuals will go along with your views
    on this website.

  4. starbuckspoker

    I like the helpful information you provide in your
    articles. I will bookmark your blog and test again right here regularly.

    I’m somewhat sure I’ll learn lots of new stuff right here!

    Best of luck for the following!

  5. Pasquale

    Thank you for some other informative site. The place else may
    I am getting that type of information written in such a
    perfect manner? I’ve a challenge that I’m simply now running on, and I have
    been on the glance out for such info.

  6. outlast 2 indir

    naturally like your web site however you need to check
    the spelling on several of your posts. A number of them
    are rife with spelling problems and I to find it
    very bothersome to inform the truth nevertheless I’ll surely come again again.

  7. free download hyip Templates

    Great post. I was checking continuously this blog and I’m inspired!
    Extremely useful info specially the closing part 🙂 I maintain such information much.

    I was looking for this certain information for
    a long time. Thanks and best of luck.

  8. 먹튀검증

    Hi! I could have sworn Iíve been to this website before but after browsing through a few of the articles I realized itís new to me. Nonetheless, Iím definitely pleased I discovered it and Iíll be book-marking it and checking back frequently!

  9. 柯克史密斯

    After looking at a few of the blog posts on your web
    site, I really like your way of blogging. I saved
    as a favorite it to my bookmark webpage list and will be checking back in the near
    future. Please check out my website as well and
    tell me your opinion.

  10. see More

    With havin so much content do you ever run into any issues of
    plagorism or copyright infringement? My blog has a lot of unique content I’ve either authored myself or outsourced but it appears a lot
    of it is popping it up all over the web without my agreement.
    Do you know any methods to help protect against content from being ripped off?
    I’d truly appreciate it.

  11. JASA PENGIRIMAN BARANG PAPUA

    I will right away grasp your rss feed as I can’t in finding your e-mail subscription link or
    newsletter service. Do you have any? Kindly permit me know in order that I may subscribe.

    Thanks.

  12. http://atlas.dustforce.com/user/montanastrailhouse

    Hi there, I found your site by means of Google while searching for a related subject, your web site got here up, it appears
    to be like great. I have bookmarked it in my google bookmarks.

    Hi there, simply become alert to your weblog through Google, and found that it’s really
    informative. I’m gonna watch out for brussels.
    I’ll appreciate if you continue this in future. Numerous other folks
    will be benefited out of your writing. Cheers!

  13. http://tinyurl.com/y574th24

    Terrific work! That is the type of info that are supposed to
    be shared across the internet. Shame on Google for
    not positioning this submit upper! Come on over and talk over with my website .
    Thanks =)

  14. Car accident lawyer

    Wow! This blog looks exactly like my old one! It’s on a totally
    different topic but it has pretty much the same layout and design. Outstanding choice
    of colors!

  15. ufabet

    เว็บไซต์ไชต์พนันออนไลน์ มาตราฐานสูงสุด UFABET เป็นจริงเป็นจังพัฒนาทุกแบบอย่าง เพื่อความชอบใจสูงสุดของสมาชิก เว็บพนันบอลออนไลน์ ที่เปิดราคาบอลเหมาะสมที่สุด ยูฟ่าเบท มอบข้อเสนอแนะยอดเยี่ยม ให้กับสมาชิก
    เว็บแทงบอล แจกเครดิตพนันบอลฟรี วันแล้ววันเล่า และเกื้อหนุน เซียนบอล มาให้ สูตรพนันบอล วิเคราะห์ วิภาควิจารณ์ กันวันแล้ววันเล่า ลงทะเบียนสมัครสมาชิกกับ เว็บไซต์แทงบอลออนไลน์ วันนี้รับสิทธิพิเศษโดยทันที

  16. Diamond Painting

    Good post. I learn something new and challenging on websites I stumbleupon everyday.

    It will always be interesting to read through content from other authors and practice something from other web sites.

  17. stepper motors

    I am not sure where you’re getting your info, but great topic.
    I needs to spend some time learning more or understanding more.

    Thanks for great info I was looking for this info for my mission.

  18. closed loop stepper motor

    Heya i’m for the first time here. I found this board and I
    find It truly useful & it helped me out much. I hope to give something back and aid others like you aided me.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *