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.

14.889 comments

  1. บ้านผลบอล

    Fantastic goods from you, man. I have understand your stuff previous to and you are just too great.
    I actually like what you’ve acquired here, really like what you’re stating and the way
    in which you say it. You make it enjoyable and you still take care of to keep it sensible.

    I cant wait to read much more from you. This is actually
    a terrific site.

  2. Delmar

    If some one desires to be updated with most recent technologies therefore he must be visit this
    web page and be up to date every day.

  3. vietnam

    I have been browsing on-line more than three hours nowadays, but
    I never discovered any interesting article like yours.
    It’s lovely price sufficient for me. Personally,
    if all site owners and bloggers made good content as you did, the net will probably
    be much more useful than ever before.

  4. sex.xxx sex

    First of all I would like to say fantastic blog!
    I had a quick question which I’d like to ask if you
    don’t mind. I was interested to find out how you center yourself and clear your
    thoughts before writing. I have had trouble clearing my thoughts
    in getting my ideas out there. I truly do enjoy writing however it just seems like
    the first 10 to 15 minutes are wasted just trying to figure out how to begin. Any ideas or hints?
    Many thanks!

  5. idnpoker.com

    Hello, I log on to your blogs regularly. Your humoristic style is awesome,
    keep up the good work!

  6. webroot login

    How much of an increase is that compared to your regular revenue on a day in percentages?

  7. Godzilla lyrics

    Get The Full Hanuman Chalisa Lyrics in Hindi and English on AtoZLyricsHub The Best Hub of Songs Lyrics and Music Videos.

  8. mcafee log in

    Your content is very nice, thank you very much about it. I am waiting for the continuation of your posts.

  9. norton login

    I really happy found this website eventually. Really informative and inoperative, Thanks for the post and effort! Please keep sharing more such blog.

  10. 비트코인믹싱

    Wow! After all I got a weblog from where I know how to truly obtain valuable
    facts concerning my study and knowledge.

  11. abgqq

    Hello there! This blog post could not be written much better!
    Looking through this article reminds me of my previous roommate!

    He always kept talking about this. I am going to forward
    this post to him. Fairly certain he’ll have a very good
    read. I appreciate you for sharing!

  12. UAEUniform

    Outstanding quest there. What happened after?
    Thanks!

  13. SEM

    I quite like looking through an article that can make people think.
    Also, thanks for permitting me to comment!

  14. 안전놀이터

    I loved as much as you will receive carried out right here.

    The sketch is attractive, your authored subject matter stylish.

    nonetheless, you command get got an impatience
    over that you wish be delivering the following. unwell
    unquestionably come further formerly again as
    exactly the same nearly a lot often inside case you shield this
    hike.

  15. 메이저사이트

    Great post! We will be linking to this great article on our site. Keep up the good writing.

  16. 안전놀이터

    Very nice blog post. I absolutely love this site. Keep writing!

  17. Rodrick Bodyfelt

    hello!,I like your writing so much! share we communicate more about your post on AOL? I require an expert on this area to solve my problem. Maybe that’s you! Looking forward to see you.

  18. agen judi deposit pulsa 10ribu

    We are a gaggle of vօlunteers and opening a brand new scheme in our community.
    Your web site offered us witһ helpful informatiоn to work on. You’ve done a formidable activity and our entire community will be thankful to you.

    Also visit my webpage … agen judi deposit pulsa 10ribu

  19. KM

    Every weekend i used to go to see this website, as i want enjoyment, as this
    this web page conations really pleasant funny information too.

  20. usa news

    Keep this going please, great job!

Tinggalkan Balasan

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