Özel bir Telegram kanalının chat_id'i nasıl elde edilir?


93

Herkese açık kanallarımı güncellemek için curl kullanıyorum. Bu tür bir sözdizimi:

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

Ama chat_idözel bir kanalın anlamı nedir? Özel davetinizdeki değil.

Çünkü artık tüm yöntemlerde chat_id yerine (ve forwardMessage'da from_chat_id yerine) bir kanal kullanıcı adı (@kanalusadı biçiminde) geçebiliriz. Peki yönettiğim özel bir kanalın @kanal kullanıcı adı nedir?


Neden kanalın chat_id'sine ihtiyacınız var? Kanala tüm gönderme yöntemleri "@kanal_adı" dizesini kullanıyor
Stas Parshin

Merhaba @pengrad curl komutuyla bir botumdan MyChannel'a mesaj göndermesini istiyorum. Genel bir kanal için chat_id, URL'sinin son kısmına eşittir: telegram.me/MyChannel'da , chat_id "MyChannel" dir. Özel kanalların yalnızca telegram.me/joinchat/AJhkwTviqL_7HWcGZgottQ gibi davet url'leri vardır ve chat_id "AJhkwTviqL_7HWcGZgottQ" değildir. Bu nedenle özel bir kanalın chat_id'sini arıyorum.
aborruso

Telgraf olmadan libre taksi çalıştırmanın bir yolu var mı?
Shahid Karimi

Yanıtlar:


186

Özel kanallarda yazmanın yolunu buldum.

  1. Bunu bir @kanalAdı ile herkese açık hale getirmelisiniz
  2. Bot API ile bu kanala mesaj gönder

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

  3. Yanıt olarak kanalınızın chat_id'si ile bilgi alacaksınız.

    {"ok": doğru, "sonuç": {"sohbet": { "id": -1001005582487, "title": "Özel Kanalı Test Et", "type": "kanal"}, "tarih": 1448245538, " message_id ": 7," text ":" 123ds "}}

  4. Artık Kanalı tekrar özele dönüştürebilir (kanalın bağlantısını silerek) ve doğrudan bu chat_id "-1001005582487" adresine mesaj gönderebilirsiniz.

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


1
Sorunuzu oyladım ve detaylar için teşekkür ederim! Burada cevabınızı oylarken şaşkınım çünkü daha çok bilgisayar korsanlığı :-). BTW, genel sorum şu: Özel Kanala ne gerek var? Belki gruplar (son süper gruplar) daha iyi bir yoldur? Yüzlerde telgraf dokümantasyonu Özel kanallar hakkında net değildir.
Giorgio Robino

1
Bunu denedim ve sadece birkaç dakika çalıştı. Bence kanal bir kez gizli hale geldiğinde, hala halka açık olduğu bir zaman çerçevesi vardır: daha sonra, tekrar herkese açık olarak ayarlamaya çalışırsanız, kanal kimliğini yeniden tanımlamanız gerekir.
roibeart

1
İlk eğik çizgide botun yanına api jetonumuzu göndermemiz gerektiğini netleştirmelisiniz. Her neyse teşekkürler! Güzel bir çözümdü.
Franco Maldonado

110

Kanalı genel yapma, en az 5 genel grup / kanala sahip kullanıcılar tarafından yapılamaz, bu nedenle ... sorun çözülmedi. Evet, bunlardan birini iptal edebilirsiniz, ancak şimdilik sohbet kimliğini başka şekilde alamıyoruz.

iptal etmek

Bu dava için çözüm bulan oldu mu?

Güncelleme

Çılgın bir çözüm buldum:

  1. Telegram'ın web sürümünde hesabınız altında oturum açın: https://web.telegram.org
  2. Kanalınızı bulun. URL'nize bakın, https://web.telegram.org/#/im?p=c 1055587116 _11052224402541910257 gibi olmalıdır
  3. Ondan "1055587116" alın ve önek olarak "-100" ekleyin.

Yani ... kanal kimliğiniz "-1001055587116" olacaktır. Sihir olur :)

Burada bulunan çözüm: https://github.com/GabrielRF/telegram-id#web-channel-id


1
Yeni kanalım bile ayarlamak için özel / genel / özel olarak değiştirildi @channel_username, ancak özel @channel_usernameolduğu halde benim için çalışmıyor!
Gönderdiğiniz

siz bayım, hayatın tadını çıkarın!
Juggernaut

1
Bu -100önekin sonsuza kadar işe yarayacağını sanmıyorum , ancak 4 yıl sonra hala çalışıyor!
Ali Tou

1
@AliTou Pavel Durov bu yorumu yeni buldu ve ÖZELLİK'i kaldırmamaya karar verdi, ahah :) Hala çalıştığını duyduğuma sevindim :)
Nigrimmist

1
Hala çalışıyor (Kasım 2020)
dcangulo

38

En kolay yol, sohbetinize @get_id_bot'u davet etmek ve ardından şunu yazmaktır:

/my_id @get_id_bot

Sohbetin içinde


3
Teşekkür ederim, en iyi cevap!
realmag777

2
Benim testime göre bot kanalda yönetici olarak eklenmelidir.
Morteza Ziyae

Evet, yönetici olarak eklenmeli, öyle görünüyor
Stefan Reich

3
bu hala güncel mi? / my_id @ ... hiçbir şey yapmıyor gibi görünüyor (bu mesajın görünmesi dışında)
wal

1
@wal Kimliği 2 yöntemle aldım /start @get_id_botve /my_id @get_id_botalan da önemli görünüyor. @get_id_botÜye olarak ekleyin ve yalnızca Yönetici olarak gönderi hakkı verin. Kimliği aldıktan sonra güvenlik için çıkarın.
rahoolm

25

Özel kanalı açın, ardından:


WARNINGTelegram Bot API kullanırken -100 öneki eklediğinizden emin olun :

  • if kanal kimliği örneğin 1192292378'dir
  • then-1001192292378 kullanmalısınız

2
Kanal kimliğini almanın en kolay ve doğru yolu bu, teşekkürler!
Tonni

En iyi cevap, teşekkürler!
Niko

3

Bunu da Yapabilirsin:

Adım 1) Özel Kanalınızı Herkese Açık Kanala Dönüştürün

Adım 2) Bu Kanal İçin Kanal Adını Ayarlayın

Adım 3) sonra bu Kanalı Özel olarak değiştirebilirsiniz

Adım 4) Şimdi 3. Adımda Ayarladığınız @ KanalAdı Kullanarak Mesajınızı Gönderme

not: Adım 1 için Kısa bir süre için Genel Kanallarınızdan Birini Özel Olarak Değiştirebilirsiniz.


2

Kanalı herkese açık hale getirip daha sonra özel hale getirmenize gerek yok.

  1. özel kanalınızın kimliğini bulun. (Bunu yapmak için çok sayıda yöntem vardır, örneğin bu SO cevabına bakın )

  2. curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyyy/sendMessage " -d "chat_id = -100 CHAT_ID & text = örnek metnim"

    xxxxxx: yyyyyyyyyyy'yi bot kimliğinizle değiştirin ve CHAT_ID'yi 1. adımda bulunan kanal kimliği ile değiştirin. Dolayısıyla, kanal kimliği 1234 ise chat_id = -1001234 olacaktır.

Hepsi tamam!



1

Şimdilik bot @username_to_id_bot'a bir davet bağlantısı yazabilir ve kimliği alırsınız:

misal: görüntü açıklamasını buraya girin

ayrıca genel sohbetler, kanallar ve hatta kullanıcılarla çalışır


0

Yaptığım seçenek Android'deki popüler Plus Messenger'ı kullanmak. Oyun mağazası bağlantısı: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=tr

Kanala tıklayabilir ve grup adının altındaki Kanal bilgilerinde Kanal Kimliğini bulabilirsiniz.

Supergroup ve Channel Ids, plus messenger'da 1068773197 gibi görünecek. API üzerindeki kullanımınız için -100 önekini kullanabilirsiniz, bu da -1001068773197 olur.


0

Python için TelegramBotApi çözümünü buldum. Belki başka diller için çalışacaktır.

Botumu özel kanala ekledim ve sonra şunu yapıyorum:

@your_bot_name hi

Konsolda ihtiyacım olan tüm bilgilerle yanıt alıyorum.


-1

GEREKLİ CEVAP:

ÖZEL kanalın yöneticisi olarak YİD'inizi eklemeli ve yapmalısınız , aksi takdirde chat not foundhata oluşur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.