Membuat Bot Telegram Dengan PHP Metode Long-Polling


Pada artikel lalu saya menerangkan tentang apa itu bot Telegram. Cara membuatnya dengan izin dari BotFather berserta metode-metode yang digunakan bot Telegram tersebut, lebih jelasnya silahkan baca artikel saya sebelumnya yakni (Membuat Bot Telegram).

Adapun artikel ini ditulis yakni fokus lebih kepada cara kerjanya disertai sumber kodenya atau fokus ke praktek pembuatannya. Oleh karena itu adalah wajib Anda membaca tulisa saya yang lalu mengenai bot (Membuat Bot Telegram). Jika tidak kemungkinan Anda tidak bisa melanjut membaca artikel ini.

Cara Membuat Bot dengan PHP

Sesuai judul yakni menggunakan metode long-polling. Sebelum jauh mengenai pembuatan bot ini pastikan Anda sudah menginstal Apache atau setidaknya XAMPP bisa baca artikel saya sebelumnya mengenai hal tersebut:

Perlu diketahui saya menulis, memberikan contoh dan mengetes bot ini pada komputer yang mana saya menggunakan sistem operasi Archlinux 64bit. Jika Anda menggunakan sistem operasi lainnya semisal Windows ataupun MacOS, pada dasarnya tidak menjadi masalah hampir mirip hanya saja cara mengeksekusinya yang berbeda dikarenakan perbedaan dari sistem operasi tersebut.

Langsung saja saya berikan sumber kodenya secara full yakni:

Anda bisa copas semua kode tersebut di atas, dan berinama contohnya situsalibot.php dan simpan disesuaikan dengan path dari Apache Anda, bagi pengguna XAMPP biasanya terletak di htdocs, bagi pengguna LAMP biasanya di /var/www/html atau /srv/http. Dalam contoh di sini saya meletakannya di /code/web.

Jika sudah maka eksekusikan dengan cara:

php situsalibot.php

Seperti gambar berikut:
botTelegram_eksekusiPHP

Penjelasan Kode

Pada awal baris kode saya menjadikan TOKEN sebagai konstan dikarenakan token ni bernilai tetap. Adapun mengenai token ini disesuaikan dengan bot yang Anda buat. Di contoh ini saya menulis token nya seperti berikut disesuaikan dengan token bot saya.

Kemudian saya membuat fungsi bernama BotKirim, dimana fungsi tersebut pada dasarnya hanya penyederhaan dari URL saja.

Saya membuat dua fungsi kirim perintah, yakni mengikirimkan perintah-perintah (commands) ke bot API tersebut. Adapun mengenai perintah bot API bisa Anda baca di: https://core.telegram.org/bots/api#available-methods

Adapun mengenai penjelasan fungsi kirim perintah itu yakni:

  1. Menggunakan metode stream dengan POST
    Disini kita gunakan metode POST untuk mengirimkan perintah ke bot API tersebut.
  2. Menggunakan metode CURL.
    CURL merupakan salah satu metode terbaik menurut saya, dikatakan CURL ini lebih cepat dan lebih bersih dibanding menggunakan metode Stream, bisa Anda baca menganai hal itu di Stack Over Flow (http://stackoverflow.com/questions/6025668/is-the-php-curl-api-cleaner-faster-better-than-using-streams-for-http-https-acce).

Lalu kemudian saya membuat fungsi DapatkanUpdate untuk mendapatkan update JSON dari bot API ini. Mengapa? Dikarenakan kita menggunakan metode long-polling, maka wajib untuk mengecek update-nya dari command getUpdates di bot API ini.

Dan yang terakhir fungsi JalankanBot. Sesuai dengan namanya yakni untuk mengeksekusi bot tersebut agar berjalan dengan sebagai mana mestinya.

Perlu diketahui, fungsi di atas menggunakan metode file_put_contents dimana saya menggunakan tersebut untuk menandai offset dengan file agar nantinya digunakan untuk mendapatkan nilai offset yang telah di-update dari bot kita ada yang mengirim pesan ke bot tersebut. Jika Anda pengguna GNU/Linux pastikan direktori dimana mana menyimpat bot Anda tersebut dengan permission write. Adapun gambaranya seperti berikut:

botTelegram_LongPoll
Dan yang terkahir saya menggunakan while, dikarenakan kita sedang membuat bot. Bot adalah salah satu program yang dirancang terus menerus berjalan, maka dari itu di PHP saya menggunakan teknik while(true). Ini mengartikan akan terus dieksesi oleh sistem selama sistem tersebut hidup.

Adapun saya memberikan jedah 2 detik dengan fungsi sleep(2) hanya sekadar jedah agar memberi kesempatan pada sistem untuk sinkronisasi. Anda bisa menghapusnya jika mau, opsional saja.

Demikianlah mengani pembuatan bot ini menggunakan PHP. Baru saya tulis mengunakan metode long-polling, artikel selanjutnya yakni pembuatan dengan webhook. Semoga Bermanfaat.

Revisi Kode Terbaru

Perhatian kode di atas hanya dapat berjalan di GNU/Linux, jika Anda menginginkan kode di atas dapat berjalan di OS lain seperti Windows atau MacOS, silahkan baca tulisan revisi saya:
https://situsali.com/menjalankan-bot-php-long-pooling-di-windows-xampp/

 

Ayo Berlangganan!

Dapatkan pemberitahuan artikel-artikel terbaru super cepat, langsung dari surel Anda.
Lebih dari 320 telah berlangganan situsali.com, ayo segera daftarkan surel Anda sekarang juga!



Perhatian!

Demi kenyamanan bersama, sebelum berkomentar, harap gunakan bahasa yang baik dan benar. Juga baca aturan dalam berkomentar. Dilarang berkomentar yang dapat memicu pertengkaran dan menyinggung unsur SARA (Suku, Agama, Ras, dan Antar Golongan).

15 Replies to “Membuat Bot Telegram Dengan PHP Metode Long-Polling”

  1. sangat bermanfaat sekali.
    bagaimana cara untuk mengirim sebuah file image, via bot telegram ? mohon pencerahan nya.

    sudah saya coba seperti ini, tetapi tidak bisa

    script :
    $data = array(
    ‘chat_id’ => ‘109703667’,
    ‘photo’=> ‘http://2.131.177.87/edc_app/assets/img/capture/rangkingedc_2016-09-27.png’,
    );
    KirimPerintahCurl(‘sendPhoto’,$data);

    1. maaf ka sya newbie di sistem tp saya sedkit2 sdh bisa cara buat bot dan hasilnya sukses,yang saya mau tanya bagaimana menghubungkan bot dengan iklan saya di fanpage fb saya biar smua bisa di jalankan oleh bot sepenuhnya,,trima kasih

  2. Bang itu pakai Code Igniter nggak?kenapa “while” ku error ya? tp klo nggak aku pasang class extend Ci_Controller nya aman-aman aja bang…

Leave a Reply