Membuat Bot Telegram untuk Auto Posting Laporan ke Group

Membuat Bot Telegram untuk Auto Posting Laporan ke Group

Chapter 2: Membuat bot Telegram untuk auto postinglaporan ke group.

Tulisan ini merupakan lanjutan dari tulisan sebelumnya mengenai dasar-dasar bot Telegram dan cara membuatnya.

Bagi yang belum membacanya silahkan ikuti tautan berikut ini :

[Chapter 1: Cara Membuat Bot Telegram dari Dasar]

Sebelum melanjutkan, berikut ini daftar apa saja yang saya gunakan dalam panduan ini:

  1. Bot Telegram
  2. Group Telegram
  3. Web Server
  4. Framework PHP CodeIgniter
  5. Database MySQL/ MariaDB

Penjelasan singkatnya yaitu sebagai berikut.

1) Bot Telegram
Bot Telegram disini akan digunakan sebagai asisten alias si pelapor yang bertugas menyampaikan laporan ke Group. Inilah yang dimaksud: (auto posting).

2) Group Telegram
Group Telegram ini digunakan khusus untuk pelaporan, maksudnya semua laporan rutin akan kita posting ke groupini.

3) Web Server
Karena aplikasi yang akan dibangun berbasis web maka kita memerlukan web server untuk menjalankannya. Bisa apacheataupun NGINXjika dijalankan secara lokal. Jika menggunakan hostingan ya lebih bagus.

4) Framework PHP: CodeIgniter
Untuk memudahkan pekerjaan kita gunakan saja frameworkCodeIgniter, silahkan downloaddi situs resminya : CodeIgniter.

5) Database MySQL / MariaDB
Karena menggunakan PHP, maka kita pilih database ini untuk menyimpan data-data laporan yang akan kita input pada formyang akan kita buat.

Memasukkan Bot Telegram ke Group

Saya anggap anda sudah mempunyai bot Telegramkarena ketika anda membaca panduan ini, seharusnya anda sudah paham dasar-dasar bot Telegram yang pernah saya jelaskan pada panduan sebelumnya.

Untuk memasukkan bot telegram ke group, caranya yaitu klik detil informasi kontak bot Telegram dan pilih opsi Add to Group
.

Add Bot Telegram to Group

Setelah memasukkan bot Telegram ke group, langkah selanjutnya yaitu mengetahui chat_idgroup dengan menggunakan metode: getUpdates.

Silahkan copy pastealamat berikut dan sesuaikan bot TOKEN-nya:
https://api.telegram.org/bot12345678:ABCDEFGHIJKLMnoPQRS-tUwXYZ/getUpdates

Jika sudah benar, maka hasilnya akan seperti ini:

{"ok":true,"result":[{"update_id":670679264,"message":{"message_id":1004,"from":{"id":87654321,"is_bot":false,"first_name":"Diko","last_name":"Pian","username":"dikopian","language_code":"en"},"chat":{"id":-1001059123456,"title":"TEST BOTS","type":"supergroup"},"date":1564826072,"new_chat_participant":{"id":1234567890,"is_bot":true,"first_name":"dicoffeean \u2615","username":"dicoffeeanbot"}]}}]}

Dari contoh di atas, sekarang kita sudah dapat ID Group yang dibutuhkan yaitu: -1001059123456dengan nama group: TEST BOTS.

Sampai disini, persiapan awal untuk membuat bot telegram laporan sudah selesai, waktunya kita main di backendatau aplikasinya.

Membuat Database MySQL untuk Pelaporan

Buat databasebaru dengan nama : laporan_botatau apapun bebas terserah anda.

Lalu copy paste scripttabel SQL laporan_harianberikut ini.

-- Host: localhostSETSQL_MODE ="NO_AUTO_VALUE_ON_ZERO"; SETtime_zone ="+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; ---- Database: `laporan_bot`---- ------------------------------------------------------------ Table structure for table `laporan_harian`--CREATETABLE`laporan_harian` ( `id` int(5) NOTNULL, `tanggal` varchar(30) NOTNULL, `nama` varchar(20) NOTNULL, `penjualan` int(5) NOTNULL) ENGINE =InnoDB DEFAULTCHARSET =utf8mb4; ---- Indexes for dumped tables------ Indexes for table `laporan_harian`--ALTERTABLE`laporan_harian` ADDPRIMARYKEY (`id`); ---- AUTO_INCREMENT for dumped tables------ AUTO_INCREMENT for table `laporan_harian`--ALTERTABLE`laporan_harian` MODIFY `id` int(5) NOTNULLAUTO_INCREMENT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Skrip di atas akan membentuk tabel laporan_harian dengan 4 kolom antara lain:

  1. id
  2. tanggal
  3. nama
  4. penjualan

It’s time to coding . . .

Membuat Form Input untuk Pelaporan

Untuk contoh mengenai formbot telegram sebenarnya sudah ada yang membahasnya disini: Membuat form untuk mengirim pesan dengan Telegram bots.

Kali ini kita akan mengembangkannya dengan menggunakan frameworkCodeIgniter.

Untuk setupawal CodeIgniter saya tidak akan membahasnya disini, silahkan cari artikel terkait atau cukup ikuti dokumentasi pada situs resminya.

Membuat Controller dan Views CodeIgniter

Buat fileController dengan nama Report.php, lalu salin codedi bawah ini.

<?phpdefined('BASEPATH') OR exit('No direct script access allowed'); classReportextendsCI_Controller{ function__construct(){ parent::__construct(); } functionindex() { $this->load->view('views_laporan_harian'); } functionsubmit_report(){ $tanggal= date("Y-m-d H:i:s"); $nama= $this->input->post('nama'); $penjualan= $this->input->post('sales'); $report_data= array( 'tanggal'=> $tanggal, 'nama'=> $nama, 'penjualan'=> $penjualan); $this->db->insert('laporan_harian', $report_data); $this->load->view('views_laporan_harian_result'); } }

Di dalam Controller Reportdi atas, bisa kita lihat ada 2 (dua) fileviewsyaitu:

  1. views_laporan_harian
  2. views_laporan_harian_result

Sekarang, saatnya kita buat ke-dua filetersebut.

Buat file pada folder : application/views/views_laporan_harian.phpdan salin skrip berikut.

<divclass="container"><divclass="small text-muted">Home » Report </div><hr/><divclass="col-md-6"><h4>Input Laporan Harian </h4><formaction="./submit_report"method="POST"><divclass="form-group"><labelfor="nama">Nama:</label><inputid="nama"class="form-control"name="nama"required=""type="nama"placeholder="Masukkan nama anda . . ."/></div><divclass="form-group"><labelfor="sales">Jumlah Penjualan:</label><inputid="sales"class="form-control"name="sales"required=""type="number"placeholder="Jumlah penjualan . . ."/></div><divclass="form-group form-check"></div><buttonclass="btn btn-primary"type="submit">Input </button></form></div></div>

Satu lagi application/views/views_laporan_harian_result.php:

<divclass="container"><br/><divclass="small text-muted">Home » Results </div><hr/><divclass="col-md-12"><h5>Hasil Input Laporan Harian </h5><divclass="panel panel-body">Hi, data Anda berhasil diinput!<br/><br/><formid="telegramForm"method="POST"><inputid="telegram_id"class="form-control"name="chat_id"type="hidden"value="-1001059123456"/><inputclass="form-control"name="text"type="hidden"value='Waktu : <?phpechodate("Y-m-d H:i:s");?><?phpecho"\n";?>Nama : * <?phpecho$this->input->post('nama');?><?phpecho"\n";?>Jumlah Penjualan : *<?phpecho$this->input->post('sales');?><?phpecho"\n\n\n*>>>* _Laporan via bot Telegram_ *<<<*";?>'/><br/><buttonid="sendToGroup"class="btn btn-primary"type="submit">Posting ke Group </button></form></div></div></div><script>$(document).on('click', '#sendToGroup', function(e){ SwalTelegram(); e.preventDefault(); }); functionSwalTelegram(){ if($("#telegram_id").val()) { swal({ title: 'Posting ke group?', text: "Pastikan Laporan anda sudah benar", type: 'question', showCancelButton: true, confirmButtonColor: '#3FC3EE', cancelButtonColor: '#E91E63', confirmButtonText: 'Ya!', showLoaderOnConfirm: true, preConfirm: function() { returnnewPromise(function(resolve) { $.ajax({ url: 'https://api.telegram.org/bot12345678:ABCDEFGHIJKLMnoPQRS-tUwXYZ/sendMessage?parse_mode=Markdown', type: 'POST', data: $('#telegramForm').serialize(), dataType: 'html'}) .done(function(response){ swal({ title: "Sukses!", html: "Silahkan laporan berhasil dikirim", type: "success", allowOutsideClick: false, timer:5000, showConfirmButton: false, animation: false, customClass: 'animated jackInTheBox', }) }) .fail(function(){ swal('Oops...', 'Ada kesalahan &#x2639;&#xfe0f;', 'error'); }); }); }, allowOutsideClick: false}); } else{ swal({ title: "Warning!", html: "Ooops ada kesalahan system!", type: "warning", allowOutsideClick: false, timer:3000, showConfirmButton: false}); } } </script>

Keterangan [PENTING] :

  • Perhatikan <input name='chat_id'>karena itu merupakan Chat ID Group yang tadi kita bahas di atas.
  • Jangan lupa ganti dengan TOKEN bot anda pada fungsi javascript SwalTelegram().


[FINAL] Testing Bot Telegram Auto Posting ke Group

Jika tidak ada kesalahan, waktunya kita uji coba alias testing.

Buka alamat : https://localhost/Codeigniter/report/atau https://localhost/Codeigniter/index.php/report/

Bot Telegram Laporan ke Group


Kita akan coba input Nama: dicoffeean dan Jumlah Penjualan: 21.

Hasilnya yaitu seperti berikut ini.

Hasil input Laporan CodeIgniter

Sekarang klik tombol “Posting ke Group”, jika berjalan lancar seharusnya muncul popupSweetAlert.

Swal2 kirim pesan ke Group oleh Bot Telegram


Jika sukses, tampilan SweetAlert akan berubah menjadi seperti di bawah ini.

Swal2 Sukses: Pesan terkirim ke group Telegram


Sekarang lihat di group, apakah ada pesan dari bot telegram?

Membuat Bot Telegram Laporan ke Group

Pesan berhasil terkirim otomatis ke groupyang dituju, dan jangan lupa cek di database-nya apakah sudah terinput seperti ini?

Bot Telegram PHP MySQL


Kode dan fungsi PHP di atas hanyalah basic functionsaja. Untuk pengembangan lebih lanjut, silahkan disesuaikan dengan kebutuhan anda masing-masing.

Jika ada saran atau pertanyaan lainnya, silahkan diskusikan pada kolom komentar yang telah disediakan.

Baca juga:

Mau test Bot Telegram Laporan tinggal isi form dan 100% tanpa coding? Klik disini : Bot Telegram Builder Indonesia

Yang mau nonton versi videonya silahkan :

WATCH VIDEO
Click the play button to load this video

Jangan lupa SubscribeChannelnyaya, masukan-masukan yang ada di kolom komentar sedang admin garap versi videonya. Yuk jangan ketinggalan!

43 responses to “Membuat Bot Telegram untuk Auto Posting Laporan ke Group”

  1. Ka boleh tanya ngga kalau untuk ngirim ke banyak akun telegram dari bot tersebut bagaimana?

  2. Keren gan konek ke dB , Bahas bikin fungsi Form di dalam bot tele dong gan, jadi ketika kita bikin button Lapor , keyboardnya on ketika kita ketik Laporan hari ini send otomatis ke grup/chatid cuman web ini sama sebelah aja yg ngulas bot tele dengan bahasa yang aman buat newbie Kya saya hehe semangat terus

  3. Mau tanya klo bikin bot yg autoposting buat beriklan ke grup orang secara otomatis gmn caranya.atau klo beli jadi token nya brapa.mohon infonya

  4. knp pas saya buat kok ga bisa ya ? form nya udah bisa keisi tapi ga bisa masuk database sama ke kirim ke telegram
    mohon bantuannya

  5. Mohon Pencerahannya,, knp pd saat ikutin langkah getUpdates diatas tidak muncul apa2, dan hnya muncul begini..

    {
    “ok”: true,
    “result”: [

    ]
    }

    • Kalo gak melakukan aktivitas apa-apa memang seperti itu, coba botnya dimasukkan terlebih dahulu ke Group, atau coba kirimi pesan botnya, lalu getUpdateslagi secara berkala, harusnya ada updatenya

  6. bang masalhanya dmn yah kalau yang muncul ini
    .fail(function(){
    swal(‘Oops…’, ‘Ada kesalahan ☹️’, ‘error’);
    });

    • Cek di console nya pak . klo ada keterangan Unauthorized , revoke bot tokennya ganti yang baru

  7. bang,berhasil…kalau untuk kirim seluruh data di tabel apa bisa menggunakan input text dalam form atau ada allternatif lain bang?trimakasih..

  8. Bang kalo sebaliknya ada tutorialnya nya gk. jadi hasil outputnya yang di web inputnya di telegram.

  9. bang, kalo proses kirim ke telegramnya otomatis gimana ya ..
    jadi misal kalo ada data baru yang berhasil di input/disimpan ke database, maka otomatis mengirimkan notif ke telegram tanpa harus ada / klik tombol posting ke group

  10. hmm terlalu jauh gan …
    yg di atas itu kan setelah form diisi dan klik input .. muncul halaman Hasil Input laporan harian trus dibawahnya ada tombol Posting ke Group … bah kalo tombol tersebut di klik baru proses send ke group

    nah kalo maksud saya, begitu diisi dan klik input, maka selain menyimpan ke database langsung juga mengirim ke telegram tanpa perlu ada tombol posting ke grup lagi ..

    tks

    • Owh maksudnya langsung 1 form aja? ya kalo itu lebih gampang gan, tinggal disesuaikan aja di formnya langsung ditambahkan ID group tujuan. Jadi ada 2 tugas yakni: POST insert to DB & kirim notif. Kalo ada waktu nanti sy tambahkan di postingannya. Trims

      • ilmu yang bermanfaat 🙂
        di tunggu yah mas cara langsung mengirim ke telegram tanpa perlu ada tombol posting ke grup lagi.

  11. Assalamu’alaykum.. sebelumnya terimakasii ni atas programnya mas. Ane mau tanya.. maksud dari “ganti dengan TOKEN bot anda pada fungsi javascript SwalTelegram().” gimana / ada di line berapa ya? maaf ane gagal paham

Tinggalkan Komentar

Field bertanda *wajib diisi

9 + 1 =
Powered by MathCaptcha