Kirim pesan telegram dengan php

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

Kirim Pesan Telegram PHP

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.

<?php

$token = "1457121280:AAHg6rm0Rqa3Opew4Wc1NRzGhPdMGQ2Jmu0"; // token bot

$data = [
    'text' =>"contoh pesan telegram dari PHP ",
    'chat_id' => '-442697126'  //contoh bot, group id -442697126
];

file_get_contents("https://api.telegram.org/bot$token/sendMessage?" . http_build_query($data) );

?>

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 atas

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

  1. Simpan script di atas dengan nama ‘send.php’ di folder path htdocs
  2. Running web server Apache di laptop Anda (bisa melalui XAMPP Control Panel)
  3. Pastikan ada koneksi ke internet di laptop Anda. Script send.php nantinya akan menghubungi server Telegram, jadi butuh koneksi internet
  4. Buka browser Anda, dan ketikkan http://localhost/send.php
  5. 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

Ajie

a Technopreneur - writer - Enthusiastic about learning AIoT, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc

Sobatcoding.com - Cara Membuat Bot Telegram dan Mengirim Pesan Menggunakan PHP

Artikel kali ini akan kita bahas cara mengirim pesan atau message menggunakan PHP via API Telegram ( Bot Telegram ). Bagaimana caranya? Langsung saja kita ikuti langkah-langkah berikut:

Cara membuat bot telegram sangat gampang, kalian login dulu ke aplikasi telegram kalian masing-masing untuk yang memakai android atau masuk ke web telegram https://web.telegram.org/

Langkah-langkah membuat bot telegram adalah sebagai berikut :

  1. Pada menu pencarian masukkan @botFather, kemudian silahkan klik pada akun tersebut.
    Kirim pesan telegram dengan php
  2. Masukkan perintah /start
  3. Pilih /newbot
  4. Kemudian kita isi nama untuk bot yang kita buat
  5. Selanjutnya kita harus mengisi username untuk bot yang kita buat harus diakhiri dengan kata bot
  6. Akun boot berhasil dibuat
  7. Setelah konfirmasi bahwa akun bot berhasil dibuat, kalian akan diberi token yang digunakan untuk akses ke API telegram nantinya. Jangan lupa untuk menyimpan token tersebut di tempat yang aman.

Membuat Kode Untuk Kirim Pesan Menggunakan PHP

Untuk dokumentasi mengirim pesan (message) via bot telegram kita bisa cek di link berikut https://core.telegram.org/bots/api#sendmessage

Ada berapa parameter yang bisa digunakan untuk kirim pesan

{
  'chat_id' => '<chat_id user>',
  'text' => '<pesan teks yang akan dikirim>',
  'parse_mode' => 'html'
}

Keterangan :

chat_id : chat_id adalah chat_id dari user yang akan kita kirim pesan

Cara untuk mendapatkan chat_id adalah sebagai berikut.

Masuk ke menu pencarian dan ketikkan get_id_bot, klik akun tersebut dan klik mulai. Maka kita akan mendapatkan informasi chat_id akun kita

Kirim pesan telegram dengan php

Kirim pesan telegram dengan php

text : text adalah isi pesan yang akan kita kirim

parse_mode : parse_mode adalah opsional, jika kita ingin kirim pesan teks dengan html didalamnya kita set parse_mode ke html

Sebagai contoh kita akan buat sebuah file php bernama send.php, dan masukkan kode berikut :

<?php

    $apiToken = "<api_token>";

    $string = '<b>bold</b>, <strong>bold</strong>
    <i>italic</i>, <em>italic</em>
    <u>underline</u>, <ins>underline</ins>
    <s>strikethrough</s>, <strike>strikethrough</strike>, <del>strikethrough</del>
    <span class="tg-spoiler">spoiler</span>, <tg-spoiler>spoiler</tg-spoiler>
    <b>bold <i>italic bold <s>italic bold strikethrough <span class="tg-spoiler">italic bold strikethrough spoiler</span></s> <u>underline italic bold</u></i> bold</b>
    <a href="http://www.example.com/">inline URL</a>
    <a href="tg://user?id=123456789">inline mention of a user</a>
    <code>inline fixed-width code</code>
    <pre>pre-formatted fixed-width code block</pre>
    <pre><code class="language-python">pre-formatted fixed-width code block written in the Python programming language</code></pre>';

    $data = [
        'chat_id' => '230965826',
        'text' => $string,
        'parse_mode' => "html"
    ];
    $response = file_get_contents("https://api.telegram.org/bot$apiToken/sendMessage?" . http_build_query($data) );

    echo '<pre>';
    print_r(json_decode($response));
    die();

Untuk <api_token> bisa kalian set sesuai token kalian masing-masing. Berikut ini adalah contoh response jika script di atas berhasil.

stdClass Object
(
    [ok] => 1
    [result] => stdClass Object
        (
            [message_id] => 15
            [from] => stdClass Object
                (
                    [id] => 5347100565
                    [is_bot] => 1
                    [first_name] => arietelegram
                    [username] => arietelbot
                )

            [chat] => stdClass Object
                (
                    [id] => 230965826
                    [first_name] => Iko
                    [last_name] => Handriyat Ismanto
                    [type] => private
                )

            [date] => 1653443802
            [text] => bold, bold
    italic, italic
    underline, underline
    strikethrough, strikethrough, strikethrough
    spoiler, spoiler
    bold italic bold italic bold strikethrough italic bold strikethrough spoiler underline italic bold bold
    inline URL
    inline mention of a user
    inline fixed-width code
    pre-formatted fixed-width code block
    pre-formatted fixed-width code block written in the Python programming language
            [entities] => Array
                (
                    [0] => stdClass Object
                        (
                            [offset] => 0
                            [length] => 4
                            [type] => bold
                        )

                    [1] => stdClass Object
                        (
                            [offset] => 6
                            [length] => 4
                            [type] => bold
                        )

                    [2] => stdClass Object
                        (
                            [offset] => 15
                            [length] => 6
                            [type] => italic
                        )

                    [3] => stdClass Object
                        (
                            [offset] => 23
                            [length] => 6
                            [type] => italic
                        )

                    [4] => stdClass Object
                        (
                            [offset] => 34
                            [length] => 9
                            [type] => underline
                        )

                    [5] => stdClass Object
                        (
                            [offset] => 45
                            [length] => 9
                            [type] => underline
                        )

                    [6] => stdClass Object
                        (
                            [offset] => 59
                            [length] => 13
                            [type] => strikethrough
                        )

                    [7] => stdClass Object
                        (
                            [offset] => 74
                            [length] => 13
                            [type] => strikethrough
                        )

                    [8] => stdClass Object
                        (
                            [offset] => 89
                            [length] => 13
                            [type] => strikethrough
                        )

                    [9] => stdClass Object
                        (
                            [offset] => 107
                            [length] => 7
                            [type] => spoiler
                        )

                    [10] => stdClass Object
                        (
                            [offset] => 116
                            [length] => 7
                            [type] => spoiler
                        )

                    [11] => stdClass Object
                        (
                            [offset] => 128
                            [length] => 5
                            [type] => bold
                        )

                    [12] => stdClass Object
                        (
                            [offset] => 133
                            [length] => 12
                            [type] => bold
                        )

                    [13] => stdClass Object
                        (
                            [offset] => 133
                            [length] => 12
                            [type] => italic
                        )

                    [14] => stdClass Object
                        (
                            [offset] => 145
                            [length] => 26
                            [type] => bold
                        )

                    [15] => stdClass Object
                        (
                            [offset] => 145
                            [length] => 26
                            [type] => italic
                        )

                    [16] => stdClass Object
                        (
                            [offset] => 145
                            [length] => 26
                            [type] => strikethrough
                        )

                    [17] => stdClass Object
                        (
                            [offset] => 171
                            [length] => 34
                            [type] => bold
                        )

                    [18] => stdClass Object
                        (
                            [offset] => 171
                            [length] => 34
                            [type] => italic
                        )

                    [19] => stdClass Object
                        (
                            [offset] => 171
                            [length] => 33
                            [type] => strikethrough
                        )

                    [20] => stdClass Object
                        (
                            [offset] => 171
                            [length] => 33
                            [type] => spoiler
                        )

                    [21] => stdClass Object
                        (
                            [offset] => 205
                            [length] => 26
                            [type] => bold
                        )

                    [22] => stdClass Object
                        (
                            [offset] => 205
                            [length] => 21
                            [type] => italic
                        )

                    [23] => stdClass Object
                        (
                            [offset] => 205
                            [length] => 21
                            [type] => underline
                        )

                    [24] => stdClass Object
                        (
                            [offset] => 236
                            [length] => 10
                            [type] => text_link
                            [url] => http://www.example.com/
                        )

                    [25] => stdClass Object
                        (
                            [offset] => 280
                            [length] => 23
                            [type] => code
                        )

                    [26] => stdClass Object
                        (
                            [offset] => 308
                            [length] => 36
                            [type] => pre
                        )

                    [27] => stdClass Object
                        (
                            [offset] => 349
                            [length] => 79
                            [type] => pre
                            [language] => python
                        )

                )

        )

)

Tidak Bisa Kirim Pesan Ke User Lain Via Bot telegram

Perlu diketahui, agar bisa kirim pesan ke user lain menggunakan bot telegram ada hal yang perlu dilakukan yaitu user yang akan kita kirim pesan harus terlebih dahulu pernah kirim pesan ke akun bot telegram yang kita buat. Atau kita bisa buat sebuah Group Telegram dengan menambahkan user ke dalamnya. Tapi dengan membuat group pesan (message) tidak akan dikirim personal ke akun user tersebut melainkan publish ke dalam group dimana nanti semua user bisa melihat pesan (message) tersebut.

Selamat mencoba.