| November 11, 2020 | PHP | Tak dipungkiri lagi bahwa popularitas Telegram sebagai layanan messaging terus meningkat, khususnya bagi developer. Tak lain tak buka karena dibukanya API (Application Programming Interface) Telegram ini. Dengan adanya API kita kita bisa mengirim dan menerima pesan Telegram menggunakan aplikasi sendiri. Bahkan kita juga bisa membuat bot Telegram yang fungsinya bisa kita program sendiri. Gimana? menarik sekali, bukan? Khusus pada artikel ini, saya
akan membahas mengenai bagaimana cara mengirim pesan (message) Telegram menggunakan PHP, sementara untuk membuat bot Telegram, Anda bisa membacanya di artikel ‘membuat bot Telegram‘. PHP sendiri merupakan bahasa pemrograman yang sangat populer digunakan di sisi server (server side scripting). Keuntungan
menggunakan PHP adalah script kita bisa running 24 jam di sebuah web server yang ada di web hosting. Dengan demikian dapat diakses oleh siapa saja dan kapan saja bagi yang punya koneksi internet. ‘Siapa saja’ di sini maknanya juga bisa sebuah ‘things’ (perangkat IoT), manusia (melalui smartphone, laptop, dll), atau juga entitas server yang lain (misal server Telegram). Jadi dengan menaruh script PHP kita di sebuah webserver maka script kita juga memiliki akses 24h ke server Telegram (melalui
API). Baiklah, tanpa berpanjang lebar, berikut ini adalah script untuk mengirim pesan Telegram menggunakan PHP. Pada intinya, script ini melakukan HTTP request ke server Telegram menggunakan teknik file_get_content untuk mengirimkan parameter sesuai dengan API yang dipersyaratkan. Perhatikan script di atas. Script di atas memiliki dua bagian utama, yakni bagian ‘data’ yang dikirim dengan format JSON seperti di atas, dan bagian HTTP request
dengan ‘file_get_content’ dengan sintaks seperti di atasKirim Pesan Telegram PHP
Pada bagian ‘data’, parameter text dapat Anda isi dengan isi pesan Telegram yang akan dikirim, sedangkan parameter ‘chat_id’ adalah id tujuan pesan tersebut. ‘Chat_id’ ini dapat berupa ‘chat id’ (id chat) untuk chat tunggal ke account telegram tertentu atau dapat juga berupa ‘group id’, yakni id grup telegram. Pada umumnya, group id akan diawali dengan tanda ‘-‘
Running Script Kirim Pesan Telegram on Localhost
Untuk menjalankan script di atas tinggal di-copy-kan ke web server Anda di web hosting atau dapat pula Anda jalankan di server lokal Anda di laptop untuk sekedar mengujinya terlebih dahulu. Berikut ini langkah-langkah menjalankan script di atas di server lokal (localhost). Saya anggap Anda sudah menginstal XAMPP ya ..
- Simpan script di atas dengan nama ‘send.php’ di folder path htdocs
- Running web server Apache di laptop Anda (bisa melalui XAMPP Control Panel)
- Pastikan ada koneksi ke internet di laptop Anda. Script send.php nantinya akan menghubungi server Telegram, jadi butuh koneksi internet
- Buka browser Anda, dan ketikkan //localhost/send.php
- Perhatikan apakah pesan sudah sampai di aplikasi Telegram Anda
Jika masih bingung, bisa lihat di video tutorial di bawah
Sekian untuk tutorial cara mengirim pesan telegram menggunakan PHP, semoga bermanfaat. Wassalam
About The Author
a Technopreneur - writer - Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
Kode ini membantu saya banyak yang saya dapatkan dari situs web php.net di sini
Kunjungi //php.net/manual/en/class.curlfile.php#115161(Pilih kode ini di situs web php).
Saya hanya mengubah tajuk dalam kode ini untuk bot telegram untuk mengirim gambar, cukup salin fungsi ini
function curl_custom_postfields($ch, array $assoc = array(), array $files = array()) { // invalid characters for "name" and "filename" static $disallow = array("\0", "\"", "\r", "\n"); // build normal parameters foreach ($assoc as $k => $v) { $k = str_replace($disallow, "_", $k); $body[] = implode("\r\n", array( "Content-Disposition: form-data; name=\"{$k}\"", "", filter_var($v), )); } // build file parameters foreach ($files as $k => $v) { switch (true) { case false === $v = realpath(filter_var($v)): case !is_file($v): case !is_readable($v): continue; // or return false, throw new InvalidArgumentException } $data = file_get_contents($v); $v = call_user_func("end", explode(DIRECTORY_SEPARATOR, $v)); $k = str_replace($disallow, "_", $k); $v = str_replace($disallow, "_", $v); $body[] = implode("\r\n", array( "Content-Disposition: form-data; name=\"{$k}\"; filename=\"{$v}\"", "Content-Type: image/jpeg", "", $data, )); } // generate safe boundary do { $boundary = "---------------------" . md5(mt_Rand() . microtime()); } while (preg_grep("/{$boundary}/", $body)); // add boundary for each parameters array_walk($body, function (&$part) use ($boundary) { $part = "--{$boundary}\r\n{$part}"; }); // add final boundary $body[] = "--{$boundary}--"; $body[] = ""; // set options return @curl_setopt_array($ch, array( CURLOPT_POST => true, CURLOPT_POSTFIELDS => implode("\r\n", $body), CURLOPT_HTTPHEADER => array( "Expect: 100-continue", "Content-Type: multipart/form-data; boundary={$boundary}", // change Content-Type ), )); }Coba Dasar: Sekarang gunakan saja kode ini dengan mengirimkan nama foto dengan path dan id obrolan .__ begini caranya: -
$array1=array('chat_id'=><here_chat_id>); $array2=array('photo'=>'index.jpg') //path $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"//api.telegram.org/<bot_token>/sendPhoto"); curl_custom_postfields($ch,$array1,$array2);//above custom function $output=curl_exec($ch); close($ch);Untuk mengirim png atau metode lain ubah fungsi curl_custom sesuai kebutuhan Anda.