Bagaimana cara mendapatkan chat_id dari saluran Telegram pribadi?

93

Saya menggunakan curl untuk memperbarui saluran publik saya. Jenis sintaks ini:

curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text"

Tapi apa chat_idsih saluran pribadi itu? Ini bukan yang Anda miliki di undangan pribadi.

Karena sekarang kita bisa mengirimkan nama pengguna saluran (dalam format @channelusername) di tempat chat_id di semua metode (dan bukannya from_chat_id di forwardMessage). Tapi apa nama @channelusername dari saluran pribadi yang saya kelola?

aborruso.dll
sumber
Mengapa Anda membutuhkan chat_id saluran? Semua metode pengiriman ke saluran menggunakan string "@channel_name"
Stas Parshin
Hai @pengrad dengan perintah curl. Saya meminta bot milik saya untuk mengirim pesan ke Saluran Saya. Untuk saluran publik, chat_id sama dengan bagian terakhir URL-nya: di telegram.me/MyChannel , chat_id adalah "Saluran Saya". Saluran pribadi hanya mengundang url seperti telegram.me/joinchat/AJhkwTviqL_7HWcGZgottQ dan chat_id bukan "AJhkwTviqL_7HWcGZgottQ". Untuk alasan ini saya mencari chat_id dari saluran pribadi.
aborruso
Apakah ada cara untuk menjalankan taksi gratis tanpa telegram?
Shahid Karimi

Jawaban:

186

Saya menemukan cara untuk menulis di saluran pribadi.

  1. Anda harus mengubahnya menjadi publik dengan beberapa @channelName
  2. Kirim pesan ke saluran ini melalui Bot API

    https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123

  3. Sebagai tanggapan, Anda akan mendapatkan info dengan chat_id saluran Anda.

    {"ok": true, "result": {"chat": { "id": -1001005582487, "title": "Test Private Channel", "type": "channel"}, "date": 1448245538, " message_id ": 7," text ":" 123ds "}}

  4. Sekarang Anda dapat mengubah Saluran kembali menjadi pribadi (dengan menghapus tautan saluran) dan mengirim pesan langsung ke chat_id ini "-1001005582487"

    https://api.telegram.org/bot111:222/sendMessage?chat_id=-1001005582487&text=123

Stas Parshin
sumber
1
Saya memilih pertanyaan Anda dan saya berterima kasih atas detailnya! Saya bingung memilih jawaban Anda di sini karena lebih merupakan peretasan :-). BTW, pertanyaan umum saya adalah: Apa kebutuhan Saluran Pribadi? Mungkinkah grup (supergrup terbaru) adalah cara yang lebih baik? Dalam dokumentasi telegram facs tidak jelas tentang saluran Pribadi.
Giorgio Robino
1
Saya mencoba ini dan hanya berhasil selama beberapa menit. Saya rasa karena setelah saluran menjadi pribadi, ada kerangka waktu di mana saluran itu masih dapat dijangkau secara publik: setelah itu, jika Anda mencoba menyetelnya lagi sebagai publik, Anda harus menentukan ulang id saluran.
roibeart
1
Anda harus menjelaskan bahwa kami perlu mengirimkan token api kami di sebelah bot pada garis miring pertama. Terima kasih! Itu adalah solusi yang rapi.
Franco Maldonado
110

Jadikan saluran publik tidak dapat dilakukan oleh pengguna dengan setidaknya ada 5 grup / saluran publik, jadi ... masalah tidak terpecahkan. Ya, Anda dapat mencabut salah satunya, tetapi untuk saat ini, kami tidak dapat mengambil id obrolan dengan cara lain.

mencabut

Apakah ada yang menemukan solusi untuk kasus itu?

memperbarui

Saya menemukan solusi gila:

  1. login dengan akun Anda di versi web Telegram: https://web.telegram.org
  2. Temukan saluran Anda. Lihat url Anda, seharusnya seperti https://web.telegram.org/#/im?p=c 1055587116 _11052224402541910257
  3. Ambil "1055587116" darinya, dan tambahkan "-100" sebagai awalan.

Jadi ... ID saluran Anda adalah "-1001055587116". Keajaiban terjadi :)

Solusi ditemukan di sini: https://github.com/GabrielRF/telegram-id#web-channel-id

Nigrimmist
sumber
1
Bahkan saluran baru saya beralih ke pribadi / publik / pribadi untuk disetel @channel_username, tetapi meskipun pribadi, @channel_usernametidak berfungsi untuk saya! Saya telah menggunakan solusi yang Anda posting, dan bekerja
MohaMad
Anda tuan, adalah kenikmatan hidup!
Juggernaut
1
Saya tidak berpikir -100awalan ini akan berfungsi selamanya, tetapi setelah 4 tahun masih berfungsi!
Ali Tou
1
@AliTou Pavel Durov baru saja menemukan komentar ini dan memutuskan untuk tidak menghapus FEATURE, ahah :) Senang mendengarnya, bahwa ini masih berfungsi :)
Nigrimmist
1
Masih berfungsi sekarang (November 2020)
dcangulo
38

Cara termudah adalah dengan mengundang @get_id_bot di obrolan Anda lalu ketik:

/my_id @get_id_bot

Di dalam obrolan Anda

Jurgo Boemo
sumber
3
Terima kasih, jawaban terbaiknya!
realmag777
2
Menurut pengujian saya, bot harus ditambahkan sebagai administrator di saluran.
Morteza Ziyae
Ya, tampaknya harus ditambahkan sebagai administrator
Stefan Reich
3
apakah ini masih terkini? / my_id @ ... sepertinya tidak melakukan apa-apa (selain pesan itu muncul)
wal
1
@wal Saya mendapat id dengan 2 metode /start @get_id_botdan juga /my_id @get_id_botruang tampaknya penting. Tambahkan @get_id_botsebagai anggota dan berikan hak posting hanya sebagai Administrator. Hapus untuk keamanan setelah Anda mendapatkan ID.
rahoolm
25

Buka private channel, lalu:


WARNINGpastikan untuk menambahkan awalan -100 saat menggunakan Telegram Bot API:

  • if ID salurannya misalnya 1192292378
  • thenAnda harus menggunakan -1001192292378
Fabio Michelini
sumber
2
Ini adalah cara termudah dan benar untuk mendapatkan ID saluran, terima kasih!
Tonni
Jawaban terbaik, terima kasih!
Niko
3

Anda Juga Bisa Melakukan Ini:

Langkah 1) Ubah Saluran Pribadi Anda Menjadi Saluran Publik

Langkah 2) Setel Nama Saluran untuk Saluran Ini

Langkah 3) maka Anda dapat mengubah Saluran ini menjadi Pribadi

Langkah 4) Sekarang Mengirim Pesan Anda Menggunakan @ChannelName Yang Anda Tetapkan Pada Langkah 3

catatan: Untuk Langkah 1 Anda Dapat Mengubah Salah Satu Saluran Publik Anda Menjadi Pribadi Untuk waktu yang singkat.

Mohammad Abdolahzadeh
sumber
2

Tidak perlu mengubah saluran menjadi publik kemudian menjadikannya pribadi.

  1. temukan id saluran pribadi Anda. (Ada banyak metode untuk melakukan ini, misalnya lihat jawaban SO ini )

  2. curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyyy/sendMessage " -d "chat_id = -100 CHAT_ID & teks = teks contoh saya"

    ganti xxxxxx: yyyyyyyyyyy dengan id bot Anda, dan ganti CHAT_ID dengan ID saluran yang ditemukan di langkah 1. Jadi jika ID saluran adalah 1234, itu akan menjadi chat_id = -1001234.

Semua selesai!

apadana
sumber
1

Untuk saat ini Anda dapat menulis tautan undangan ke bot @username_to_id_bot dan Anda akan mendapatkan id:

contoh: masukkan deskripsi gambar di sini

juga berfungsi dengan obrolan publik, saluran, dan bahkan pengguna

crystalbit
sumber
0

Opsi yang saya lakukan adalah dengan menggunakan Plus Messenger yang populer di Android. Tautan play store adalah: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=id

Anda dapat mengklik Channel dan di info Channel di bawah nama grup, Anda dapat menemukan Id Channel.

Supergroup dan ID Saluran akan terlihat seperti 1068773197 di plus messenger. Untuk penggunaan Anda di API, Anda dapat mengawali -100 yang akan menjadikannya -1001068773197.

Habeeb
sumber
0

Menemukan solusi untuk TelegramBotApi untuk python. Mungkin akan berfungsi untuk bahasa lain.

Saya hanya menambahkan bot saya ke saluran pribadi dan kemudian melakukan ini:

@your_bot_name hi

Di konsol saya mendapat respons dengan semua info yang saya butuhkan.

lisichka ggg
sumber
-1

DIBUTUHKAN JAWABAN:

Anda harus menambahkan & menjadikan BOT Anda sebagai administrator saluran PRIVATE , jika tidak chat not foundterjadi kesalahan.

T.Todua
sumber