Membuat Telegram Bot Menggunakan PHP : Long Polling

Sebelum membaca post ini, pastikan anda sudah memahami konsep dasar Telegram BOT API. Saya telah membuat post tentang ini sebelumnya.

Apa Saja yang Diperlukan untuk Long Polling

Untuk membuat program long polling pertama kita menggunakan Telegram BOT API, kita memerlukan :

  1. Web Server (bisa local atau hosting)
  2. Koneksi internet yang lancar
  3. Scheduler untuk melakukan request ke telegram.org setiap beberapa detik sekali (Windows sudah memiliki fitur bawaan Windows Scheduler)
  4. Aplikasi Telegram. Download aplikasinya di telegram.org.

Pada tutorial ini, kita akan membuat bot yang dapat membalas sebuah pesan sederhana. Kita akan dapat mengatur balasan sesuai dengan pesan yang kita kirimkan melalui bot.

Tahapan Pembuatan Telegram Bot dengan Metode Long Polling

  1. Buka aplikasi Telegram, kemudian cari user @BotFather.
  2. Klik tombol /start di bagian bawah chat.
  3. Klik /newbot untuk membuat bot baru. BotFather akan meminta anda untuk mengetik nama dan username bot baru.
  4. Setelah memasukkan nama dan username, anda akan menerima pesan yang berisi token dari bot anda.
    Membuat Telegram Bot
  5. Selamat, anda baru saja membuat sebuah bot. Namun tentu saja, tanpa melakukan tindak lanjut apapun, bot ini tidak berguna, karena belum diprogram. Untuk membuat bot ini hidup, kita perlu membuat project di workspace. Jika anda belum tahu cara membuatnya, silahkan membaca post ini : #1 Tutorial Pemrograman Web – Menginstall XAMPP Server. Mari kita namakan folder project baru tersebut longpolling. Di dalam folder longpolling, kita buat sebuah file dengan nama index.php.
  6. Copy dan paste kode php di bawah ini ke dalam file index.php tersebut.
  7. <?php
    $token = '<YOUR BOT TOKEN>';
    
    $apiLink = "https://api.telegram.org/bot$token/";
    $update = file_get_contents($apiLink.'getUpdates');
    $updateArray = json_decode($update, TRUE);
    
    if($updateArray['result']){
        foreach($updateArray['result'] as $key=>$val){
            $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 />';
            
            file_get_contents($apiLink.'getUpdates?offset='.($update_id+1));
        }
        
    } else echo 'No new Updates';
    
    ?>

    Ganti <YOUR BOT TOKEN> di baris kedua dengan token yang dikirim oleh telegram BotFather.

  8. Sekarang kita coba jalankan script tersebut. Buka browser anda, kemudian ketik url localhost/longpolling. Anda seharusnya melihat hasil seperti ini :
    Membuat Telegram Bot
  9. Kembali ke aplikasi Telegram, cari nama bot anda. Contoh yang saya buat, usernamenya adalah dryanchristoph_bot. Buka pesan di bot tersebut, lalu klik Start.
  10. Tidak akan ada balasan setelah melakukan klik Start. Namun jangan kuatir, tinggal selangkah lagi untuk bot tersebut bisa menjawab pesan kita.
    Membuat Telegram Bot
  11. Jalankan lagi script tadi lewat browser, ketik localhost/longpolling pada browser anda.
  12. Hasilnya, akan muncul teks di halaman web yang berisi data user dan teks yang dikirim. Di akhir, ada teks : “Response Sent.”.
    Membuat Telegram Bot
  13. Bersamaan dengan tahap sebelumnya, seharusnya anda juga mendapat notifikasi pesan telegram. Periksa pesan tersebut, dan begitulah bot baru anda bekerja.
    Membuat Telegram Bot
  14. Coba refresh scriptnya lagi di browser anda, maka updates terakhir akan hilang lagi. Sekarang anda dapat mencoba mengirim pesan apapun ke bot tersebut, kemudian jalankan kembali script di browser anda, maka bot akan memberikan respon.

Tapi tunggu dulu, bot macam apa yang memerlukan kita untuk selalu menjalankan script ketika ada user yang mengirim pesan? Namun memang begitulah konsep dari long polling. kita harus selalu melakukan pengecekan setiap beberapa detik sekali, untuk mengetahui ada atau tidak user yang mengirim pesan ke bot kita. Untuk itu, kita memerlukan Scheduler yang aplikasinya sudah ada di aplikasi bawaan Windows, yang bernama Windows Scheduler. Aplikasi ini akan membantu kita menjalankan script tersebut otomatis setiap beberapa detik sekali tanpa perlu repot – repot membuka browser lagi. Saya telah membuat post terpisah tentang ini : Membuat Windows Scheduler Untuk Menjalankan Program Otomatis.

Jadi begitulah bagaimana cara membuat Telegram Bot yang dapat membalas chat kita menggunakan metode long polling. Jika ada pertanyaan, silahkan tanya di kolom komentar ya.

12.259 comments

  1. SM 카지노

    I used to be suggested this website by way of my cousin. I am
    now not certain whether or not this post is written via him as
    no one else understand such detailed approximately my problem.
    You are wonderful! Thank you!

  2. LA Weekly's List

    Precisely the kind of content that enhances the internet. Thanks!

  3. podsmall.com

    Informative article, exactly what I needed.

  4. astrocartography reading

    Hmm is anyone else encountering problems with the images on this blog loading?
    I’m trying to determine if its a problem on my end or if it’s the blog.
    Any suggestions would be greatly appreciated.

  5. Angel Investor Defiinition

    New programs are opening up admission to technical
    startups using a large degree. Sites likeAngelList and FundersClub,
    Alphaworks allow angels (that meet up with recognized
    entrepreneur condition) to invest in startups and technology firms.

  6. astrocartography reading

    I have been browsing online more than 2 hours today, yet I never found any interesting article like yours.
    It is pretty worth enough for me. In my opinion, if all site owners and bloggers made good
    content as you did, the net will be much more
    useful than ever before.

  7. Situs slot qq

    each time i used to read smaller posts which as well clear their motive,
    and that is also happening with this article which I am reading now.

  8. 솔카지노

    Excellent goods from you, man. I’ve understand your stuff previous
    to and you’re just too fantastic. I actually like what you have acquired here, certainly like what you are stating and the way in which you say it.
    You make it enjoyable and you still care for to keep
    it wise. I can not wait to read much more from you.
    This is actually a wonderful website.

  9. 예스카지노

    Wonderful article! That is the kind of info that should
    be shared around the web. Disgrace on Google for not positioning this
    post upper! Come on over and seek advice from my web site .

    Thank you =)

  10. 카지노사이트

    This is very interesting, You’re a very skilled blogger.

    I’ve joined your rss feed and look forward to seeking more
    of your fantastic post. Also, I have shared your website in my social networks!

  11. fun ways to think answers

    Hi there, I enjoy reading all of your article post. I like to write a little comment to support
    you.

  12. Go Here

    I know this if off topic but I’m looking into starting my own blog
    and was wondering what all is needed to get setup? I’m
    assuming having a blog like yours would cost a pretty penny?
    I’m not very internet smart so I’m not 100%
    certain. Any tips or advice would be greatly appreciated.
    Thank you

  13. Investment Internship

    Who will probably do this all job? I absolutely sure as hell ain’t the only one.

    New natural talent is necessary to mobilize project cash well.

  14. 007카지노

    Wow, wonderful blog layout! How long have you been blogging for?
    you made blogging look easy. The overall look of your web site is great, let
    alone the content!

  15. flirtgleich

    Hi there, just became alert to your blog through Google, and found that it’s truly informative.
    I am gonna watch out for brussels. I will appreciate if you continue this in future.
    Numerous people will be benefited from your writing. Cheers!

  16. https://shootercasino.com/007-casino/

    Hi would you mind letting me know which hosting
    company you’re working with? I’ve loaded your blog in 3 different
    internet browsers and I must say this blog loads a lot faster then most.
    Can you recommend a good hosting provider at a fair price?
    Many thanks, I appreciate it!

  17. 우리카지노

    I’m more than happy to find this great site. I need to to thank
    you for your time just for this wonderful read!!
    I definitely loved every little bit of it and I have you book-marked to look at new
    things in your web site.

  18. 예스카지노

    Hi mates, its impressive post on the topic of tutoringand fully defined,
    keep it up all the time.

Tinggalkan Balasan

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