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_id
sih 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?
telegram-bot
aborruso.dll
sumber
sumber
Jawaban:
Saya menemukan cara untuk menulis di saluran pribadi.
Kirim pesan ke saluran ini melalui Bot API
https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123
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 "}}
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
sumber
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.
Apakah ada yang menemukan solusi untuk kasus itu?
memperbarui
Saya menemukan solusi gila:
Jadi ... ID saluran Anda adalah "-1001055587116". Keajaiban terjadi :)
Solusi ditemukan di sini: https://github.com/GabrielRF/telegram-id#web-channel-id
sumber
@channel_username
, tetapi meskipun pribadi,@channel_username
tidak berfungsi untuk saya! Saya telah menggunakan solusi yang Anda posting, dan bekerja-100
awalan ini akan berfungsi selamanya, tetapi setelah 4 tahun masih berfungsi!Cara termudah adalah dengan mengundang @get_id_bot di obrolan Anda lalu ketik:
Di dalam obrolan Anda
sumber
/start @get_id_bot
dan juga/my_id @get_id_bot
ruang tampaknya penting. Tambahkan@get_id_bot
sebagai anggota dan berikan hak posting hanya sebagai Administrator. Hapus untuk keamanan setelah Anda mendapatkan ID.Buka private channel, lalu:
di klien web :
if
itu misalnya https://web.telegram.org/#/im?p=c1192292378_2674311763110923980then
1192292378 adalah ID salurandi seluler dan desktop :
if
itu misalnya https://t.me/c/1192292378/31then
1192292378 adalah ID saluran (bonus: 31 adalah ID pesan)di Plus Messenger untuk Android :
WARNING
pastikan untuk menambahkan awalan -100 saat menggunakan Telegram Bot API:if
ID salurannya misalnya 1192292378then
Anda harus menggunakan -1001192292378sumber
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.
sumber
Tidak perlu mengubah saluran menjadi publik kemudian menjadikannya pribadi.
temukan id saluran pribadi Anda. (Ada banyak metode untuk melakukan ini, misalnya lihat jawaban SO ini )
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!
sumber
ID saluran pribadi Anda adalah bagian XXXXXX (antara "p = c" dan garis bawah). Untuk menggunakannya, cukup tambahkan "-100" di depannya. Jadi, jika "XXXXXX" adalah "4785444554" ID saluran pribadi Anda "-1004785444554".
sumber
Untuk saat ini Anda dapat menulis tautan undangan ke bot @username_to_id_bot dan Anda akan mendapatkan id:
contoh:
juga berfungsi dengan obrolan publik, saluran, dan bahkan pengguna
sumber
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.
sumber
Menemukan solusi untuk TelegramBotApi untuk python. Mungkin akan berfungsi untuk bahasa lain.
Saya hanya menambahkan bot saya ke saluran pribadi dan kemudian melakukan ini:
Di konsol saya mendapat respons dengan semua info yang saya butuhkan.
sumber
DIBUTUHKAN JAWABAN:
Anda harus menambahkan & menjadikan BOT Anda sebagai administrator saluran PRIVATE , jika tidak
chat not found
terjadi kesalahan.sumber