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.

14.246 comments

  1. loose diamonds orlando fl

    Spot on with this write-up, I seriously believe that this web site needs far more attention. I?ll
    probably be back again to read through more, thanks for the information!

  2. Pinoy Lambingan

    This lets you filter what your baby experiences to make certain it is appropriate for his or her age.

    Here is my blog post :: Pinoy Lambingan

  3. diamonds are a girls best friend

    Hello there! Do you know if they make any plugins to help
    with SEO? I’m trying to get my blog to rank for some targeted keywords but I’m
    not seeing very good gains. If you know of any please share.
    Many thanks!

  4. sinesilip.su

    On February 22, 2019, GMA Network introduced that they will be investing ₱1 billion for the
    second section of its digitization project.

    my homepage … Pinoy Tv (sinesilip.su)

  5. Janessa

    This paragraph will help the internet viewers for building up new webpage or even a weblog from start to end.

    my page; sepatu safety online (Janessa)

  6. CinePinoy

    The pleased story takes a turn, nonetheless, after Kara is diagnosed with leukemia.

    Also visit my page: CinePinoy

  7. 2174836911

    Doess anyone know if Naples Vapor based іn 4460 Cleveland Ave is stilⅼ օpen? Oг has it сlosed dduring the pandemic?
    Ꭲhanks in advance!

    Here is my pɑge :: 2174836911

  8. cach tang like facebook

    Its like you read my mind! You appear to know so much about this, cach tang like facebook you wrote the book in it or something.
    I think that you could do with a few pics to drive the message home a bit, but
    other than that, this is fantastic blog. An excellent read.
    I will certainly be back.

  9. hacklike

    Incredible quest there. What happened after?
    Take care!

    Feel free to surf to my blog: hacklike

  10. hack like fb

    Hi to every one, since I am genuinely keen of reading this website’s post to be
    updated daily. It includes pleasant stuff.

    Feel free to visit my website … hack like fb

  11. hack like facebook

    Excellent items from you, man. I have take
    into accout your stuff previous to and you are simply too wonderful.
    I actually hack like facebook what
    you’ve received right here, certainly like what you’re saying and the
    way in which through which you say it. You are making it entertaining and you continue to care
    for to stay it sensible. I can not wait to read much more from you.
    That is really a terrific web site.

  12. chạy quảng cáo facebook

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

    my web blog … chạy quảng cáo facebook

  13. bedava hesap

    bedava hesap her gün yeni hesapları otomatik yapay zeka ile sitede paylaşıyor.
    Ne zaman girersen gir web siteye anlık olarak güncel bir hesap alabilirsin. Ücretsiz
    hesap dağıtım ve paylaşım web sitesi arıyanlar için açılmış bir sitedir.

    bedava hesap

  14. Recommended Site

    Definitely, what a fantastic website and illuminating posts, I will bookmark your website.All the Best!

    Also visit my web-site :: Recommended Site

  15. Sgpool4D.com

    Hi to all, it’s really a pleasant for me to visit this web site, it contains precious Information.

  16. Kimkam

    [url=https://cialismale.com/]cialis from canada to usa[/url]

  17. 더나인카지노

    It’s very straightforward to find out any matter on web as compared
    to textbooks, as I found this piece of writing at this web page.

  18. watch The Suicide Squad online

    Get outside and journey your motorcycle. Enthusiast bike riders can discover
    new trails to trip through the year. It is possible to
    trip bicycles all year long when you attire proper.

    This The Suicide Squad box office that is included with numerous health
    and fitness benefits and the amount of entertaining you
    may have.

  19. zenwriting.net

    Greate аrticle. Keеp posting ѕuch kind of informayion on your site.
    Im rеally impresed by your site.
    Hello thеre, You have done a great joƅ. I’ll definitely digg it and indiѵidcually suggeѕt
    to my frіends. I’m confident they’ll be benefited from this
    sіte.

    My web pave … cᥙte outfits (zenwriting.net)

  20. Fun88

    Hi, just wanted to say, I enjoyed this post. It was inspiring.

    Keep on posting!

Tinggalkan Balasan

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