Menjalankan Bot PHP (Long-Pooling) di Windows XAMPP


Berdasarkan banyaknya pertanyaan dari Grup Telegram Bot Indonesia, mereka menanyakan bagaimana cara menjalankan bot dari kode sumber di artikel lama saya dengan judul Membuat Bot Telegram Metode Long-Pooling di Windows dan dengan XAMPP.

Beberapa tulisan saya di sini mengenai tutorial pada dasarnya semua sudah dites sebelum diterbitkan. Hanya saja, saya dalam kegiatan sehari-hari lebih sering menggunakan GNU/Linux terutama distro Archlinux, baik di PC rumah ataupun komputer jinjing (laptop) saya pribadi. Agak jarang beberapa tutorial, dalam tanda pentik khususnya mengenai pemrograman, saya tes di sistem operasi Windows. Oleh karena itu, dalam artikel kali ini saya mencoba untuk memberikan sebuah arahan khusus bagi pengguna Windows mengenai bagaimana mana cara menjalankan bot Telegram dengan XAMPP.

Untuk Siapa Tulisan Ini?

Sebelum melanjut membaca tulisan ini ada kiranya Anda memiliki 3 kriteria berikut:

  1. Mengetahui dasar-dasar PHP.
  2. Mengetahui JSON dan pemanfaatannya.
  3. Mengetahui dasar atau paling tidak pernah sedikit tahu cara menggunakan CMD.

Jika 3 kriteria di atas tidak ada pada diri Anda sebaiknya jangan membaca tulisan ini, ada kiranya Anda pelajari dulu hal di atas. Dimana? cara termudah adalah dengan Anda mencarinya di Google.

Pendahuluan

Sedikit ulasan mengenai XAMPP, merupakan kependekan dari X Apache, MariaDB/MySQL, PHP dan Perl. X menunjukan untuk cross-platform, artinya tidak hanya dapat dijalankan di Windows saja, bisa juga dijalankan di GNU/Linux dan MacOS. XAMPP ini merupakan sebuah paket aplikasi satu-kesatuan dimana dikhususkan bagi kita yang baru mau memulai belajar pemrograman PHP tanpa perlu ribet dan dipusingkan dengan banyaknya pengaturan integrasi antara Apache dengan PHP.

Dan kebetulan pula XAMPP ini merupakan aplikasi yang cukup banyak dipakai para pemula PHP meskipun ada juga yang menggunakan WAMP, bahkan sebagai dari mereka untuk pengguna Windows, disarankan menggunakan WAMP karena WAMP ini memang dikhususkan bagi Windows, meskipun XAMPP itu cross-platform. Oke, saya tidak akan menjelaskan XAMPP terlalu banyak di sini, begitu juga perbandingannya dengan yg lain. Fokus tulisan ini hanya kepada pengguna Windows dan XAMPP.

Sebelumnya tulisan seperti ini sudah saya tulis di channel Telegram Situsali.com dan kini baru saya publikasikan dalam bentuk tulisan artikel di Situs Ali, di channel Telegram Situsali saya memang fungsikan selain sebagai media reposting blog, juga sebagai beberapa tulisan cepat yang belum terpublikasi di sini. Memang saya akui cukup telat saya menuliskannya, mengingat ada beberapa perkerjaan kantor saya yang harus diselesaikan hingga saya menunggu waktu luang untuk menuliskan tulisan ini, dan saya merasa tulisan ini seperti hutang yang saya harus dilunasi.

Pokok Persoalan

Langsung saja ke pokok persoalan menanggapi pertanyaan mengenai cara membuat bot Telegram dengan PHP metode long-polling di sistem operasi Windows, di mana katanya skrip bot yang saya buat tersebut tidak berjalan sebagai mana mestinya. Saya memang jarang sekali menggunakan Windows, jadi belum sempat mencoba. Nah, kebetulan ketika saya berada di Windows 7 mencoba mengaplikasikan hal itu, dan saya pasang XAMPP, untuk memastikan bahwa skrip atau kode yang saya tulis di sini tidaklah salah.

Kemudian saya cobalah skrip tersebut dan ternyata benar, skrip yang saya buat tersebut tidak berjalan dengan sebagaimana mestinya, setelah saya selidiki ternyata masalahnya ada di curl. Untungnya diartikel itu saya memasukan dua metode yakni curl dan stream. Saya disana menggunakan curl bukan dengan stream. Oleh karena itu bagi pengguna Windows coba ganti baris kode ke-104 yakni KirimPerintahCurl('sendMessage',$data); diganti dengan KirimPerintahStream('sendMessage',$data);.

Sekarang Anda tinggal jalankan bot Anda dengan CMD di Windows tanpa perlu menyalakan Apache pada XAMPP dan tidak perlu membuka peramban (browser). Pertama masuk ke direktori XAMPP dimana Anda meletakanya dengan perintah cd, lalu kemudian, ketik perintah php\php htdocs\botAnda.php.

Sebagai contoh, misalnya saya meletakan direktori XAMPP saya berada di c:\xampp. kemudian bot saya letakan di c:\xampp\htdocs\bot\situsali.php. Maka yang saya lakukan sebagai berikut:

situsali-bot-win7

Dan bot tersebut pastinya nanti akan berjalan dengan sebagaimana mestinya. Jika Anda tidak terbiasa dengan cara demikan, Anda lebih terbiasa dengan cara menjalankan XAMPP lalu membukanya dengan peramban di http://localhost, kabar gembira sekarang skrip telah disempurnakan, terima kasih kepada Mas Pringgo Radianto (Radya) yang telah membantu memberikan masukan dan revisian kode dan juga saya perbaiki sedikit, berikut kode revisinya, bisa Anda copas semua dan ganti kode lama dengan kode berikut:

Dan Anda bisa menjalankan bot tersebut dengan atau tanpa menggunakan CMD, bisa dijalankan dengan cara lama yakni Apache pada XAMPP dinyalakan dan kemudian Anda membuka peramban lalu masuk ke localhost seperti gambar berikut:

situsali-bot-win72

Perlu diketahui skrip terbaru ini meskipun dicontoh di atas dijalankan di Windows, Anda dapat juga menggunakannya di OS lainnya seperti GNU/Linux dan MacOS.

Pertanyaan yang Sering ditanyakan (FAQ)

FAQ kependekan dari Frequently asked questions, yang berarti pertanyaan yang sering ditanyakan. Sedikit ulasan mengenai kode dari skrip bot di sini, ada beberapa pertanyaan mendasar dan ini sering maka perlu dijelaskan di sini, adapun pertanyaan tersebut yakni:

  1. Bagaimana saya bisa tahu aktifitas bot Ini?
    Semua kode saya gunakan fungsi (function) dan memiliki nilai pengembalian (return). Jadi Anda bisa memanfaatkan apa yang dikembalikan dari fungsi tersebut dengan cara var_dump.Misalnya Anda ingin mengetahui apa sih isi dari fungsi DapatkanUpdate? tinggal var_dump saja seperti berikut:

    Begitu juga pada fungsi lainnya di KirimPerintah. Anda bisa lihat hasil nilainya. Karena bot Telegram ini mengunakan JSON sebagai pertukaran data, dan dalam kode bot ini  JSON yang dikembalikan nilainya (json_decode) dengan array, Agar Anda dapat memanfaatkannya dengan mudah.

    Selain menggunakan var_dump Anda juga bisa menggunakan print_r agar array mudah terbaca seperti berikut:


    Sekali lagi cara di atas berlaku bagi fungsi lainnya. Jika sudah sebaiknya Anda baca dokumentasi bot API Telegram, tentang apa saja nilai dan manfaat nilai tersebut di: https://core.telegram.org/bots/api di sini semua field, type dijelaskan dengan lengkap tinggal Anda manfaatkan saja.

  2. Bagaimana saya bisa tahu bot ini mengirim pesan apa?
    Jika Anda membaca kembali skrip di atas (skrip TERBARU)  pada baris ke-113 saya menulis kode:

    Dengan begitu Anda bisa mengetahui apa sih isi pesan dari bot Anda.
  3. Bagaimana saya bisa memanfaatkan bot dengan perintah slash /perintah ?
    Jawaban pertanyaan ini bisa dijawab di pertanyaan poin ke-2, yakni memanfaatkan nilai balik (return) dari variabel $text. Dan untuk mempermudah Anda memisahkan mana perintah mana isi perintah bisa memanfaatkan kode explode. Contohnya:

    Dengan demikian Anda tinggal buat saja perintahnya di botFather dan pisahkan misalnya dengan if atau switch, tinggal Anda pilih saja logikanya mana yang terbaik bagi Anda.

Semoga tulisan ini bermanfaat, jika ada yang masih belum paham harap berkomentar. Sekali lagi, pengguna awam atau pertanyaan yang sangat mendasar sebaiknya Anda cari dulu di Google sebelum bertanya di sini. Terima Kasih ?

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).

22 Replies to “Menjalankan Bot PHP (Long-Pooling) di Windows XAMPP”

  1. Script php utk webhook ini apakah harus jalan melalui https apa cukup http saja, karena sy coba di http tdk bisa, terimakasih

    1. harus https dan memiliki sertifikat ssl, kalau tidak punya bisa buat self-signed atau pakai gratisan macam Let’s Encrypt atau CloudFlare.

  2. selamat siang, kalo di appserv bisa ga mas? kok setelah saya coba malah katanya “qWDWaqTw7TrAv_7yjKC8
    /getUpdates?offset=2071): failed to open stream: No such file or directory in C:
    \AppServ\www\kp\faridariaBot.php on line 58”.. maaf pemula, mohon bantuannya mas

    1. itu ada keterangannya No such file or directory in C:
      \AppServ\www\kp\faridariaBot.php on line 58”
      berarti gak ada berkas atau direktori

      1. saya mengalamahi hal yang sama mas: faultCode0faultStringWarning:file_get_contents(https://api.telegram.org/bot250261846:AAHCU-Orjpxkk4v9Lz3p6obo2mz1VkAxxWo/getUpdates?offset=7562) [function.file-get-contents]: failed to open stream: No such file or directory in C:\wamp\www\laporan\proyek\centerbot.php on line 63Bot sedang jalanphp

        file saya letakan di C:\wamp\www\laporan\proyek\centerbot.php dengan kata lain direktorinya ada dan tulisan “Bot sedang jalan” juga sudah ada. kira2 direktori mana yang belum ada ya mas?

  3. Mas, pls ditambahkan utk script sehingga bot kirim gambar. Saya coba modifikasi namun error failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request. Terima kasih untuk respon dan sharingnya

  4. Mas mau tanya, dengan bot instagram bisa kirim chat tertarget gk ya?
    Saya punya situs pulsa, rencananya setiap ada transaksi akan otomatis melakukan respon ke bot yang telah saya buat untuk membuat transaksi ke bot penyedia server pulsa.

  5. hai gan
    saya mau tanya nih membuat telegram bot dgn metode long polling
    saya memasukkan file php saya di https dan di bot saya jalan terus menerus
    bagaimana cara untuk menghentikannya?

Leave a Reply