Wie erhalte ich die chat_id eines privaten Telegrammkanals?


90

Ich verwende Curl, um meine öffentlichen Kanäle zu aktualisieren. Diese Art von Syntax:

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

Aber was ist das chat_idvon einem privaten Kanal? Es ist nicht das, was Sie in der privaten Einladung haben.

Denn jetzt können wir in allen Methoden anstelle von chat_id (und anstelle von from_chat_id in forwardMessage) einen Kanalbenutzernamen (im Format @channelusername) anstelle von chat_id übergeben. Aber wie lautet der @ Kanalbenutzername eines privaten Kanals, den ich verwalte?


Warum brauchst du die chat_id des Kanals? Alle Sendemethoden zum Kanal verwenden die Zeichenfolge "@channel_name"
Stas

Hallo @pengrad mit Curl-Befehl Ich bitte einen Bot von mir, eine Nachricht an MyChannel zu senden. Für einen öffentlichen Kanal entspricht die chat_id dem letzten Teil seiner URL: In telegram.me/MyChannel lautet die chat_id "MyChannel". Die privaten Kanäle haben nur URLs wie telegram.me/joinchat/AJhkwTviqL_7HWcGZgottQ eingeladen und die chat_id ist nicht "AJhkwTviqL_7HWcGZgottQ". Aus diesem Grund suche ich die chat_id eines privaten Kanals.
Aborruso

Gibt es eine Möglichkeit, ein libre Taxi ohne Telegramm zu fahren?
Shahid Karimi

Antworten:


173

Ich habe den Weg gefunden, in privaten Kanälen zu schreiben.

  1. Sie sollten es mit @channelName in public konvertieren
  2. Senden Sie eine Nachricht über die Bot-API an diesen Kanal

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

  3. Als Antwort erhalten Sie Informationen mit chat_id Ihres Kanals.

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

  4. Jetzt können Sie den Kanal wieder in einen privaten Kanal konvertieren (indem Sie den Link des Kanals löschen) und eine Nachricht direkt an diese chat_id "-1001005582487" senden.

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


1
Ich habe Ihre Frage gewählt und danke Ihnen für Details! Ich bin ratlos, wenn ich deine Antwort hier abstimme, weil es eher ein Hacking ist :-). Übrigens lautet meine allgemeine Frage: Was braucht ein privater Kanal? Vielleicht sind Gruppen (aktuelle Supergruppen) ein besserer Weg? In Faks ist die Telegrammdokumentation über private Kanäle unklar.
Giorgio Robino

1
Ich habe es versucht und es hat nur einige Minuten funktioniert. Ich denke, denn sobald der Kanal privat wird, gibt es einen Zeitrahmen, in dem er noch öffentlich erreichbar ist: Wenn Sie danach versuchen, ihn erneut als öffentlich festzulegen, müssen Sie die Kanal-ID neu definieren.
Roibeart

1
Sie sollten klarstellen, dass wir unser API-Token beim ersten Schrägstrich neben dem Bot einreichen müssen. Trotzdem danke! Es war eine saubere Lösung.
Franco Maldonado

es funktioniert, danke
David

104

Kanal öffentlich machen kann nicht vom Benutzer durchgeführt werden, wenn mindestens 5 öffentliche Gruppen / Kanäle vorhanden sind, also ... Problem nicht gelöst. Ja, Sie können eine davon widerrufen, aber im Moment können wir die Chat-ID nicht auf andere Weise abrufen.

widerrufen

Hat jemand eine Lösung für diesen Fall gefunden?

aktualisieren

Ich habe eine verrückte Lösung gefunden:

  1. Melden Sie sich unter Ihrem Konto bei der Webversion von Telegram an: https://web.telegram.org
  2. Finde deinen Kanal. Achten Sie auf Ihre URL, es sollte so seinAchten Sie folgt lauten: https://web.telegram.org/#/im?p=c 1055587116 _11052224402541910257
  3. Nehmen Sie "1055587116" und fügen Sie "-100" als Präfix hinzu.

Also ... Ihre Kanal-ID lautet "-1001055587116". Magie passiert :)

Hier gefundene Lösung: https://github.com/GabrielRF/telegram-id#web-channel-id


1
Sogar mein neuer Kanal hat auf privat / öffentlich / privat umgestellt @channel_username, aber während er privat @channel_usernameist, funktioniert er nicht für mich! Ich habe Ihre veröffentlichte Lösung verwendet und gearbeitet
MohaMad

Sie, Sir, sind ein Lebensgenuss!
Juggernaut

1
Ich denke nicht, dass dieses -100Präfix für immer funktionieren wird, aber nach 4 Jahren funktioniert es immer noch!
Ali Tou

1
@AliTou Pavel Durov hat gerade diesen Kommentar gefunden und beschlossen, FEATURE nicht zu entfernen, ahah :) Freut mich zu hören, dass es immer noch funktioniert :)
Nigrimmist

31

Am einfachsten ist es, @get_id_bot in Ihren Chat einzuladen und dann Folgendes einzugeben:

/my_id @get_id_bot

In deinem Chat


3
Danke, die beste Antwort!
Realmag777

1
Nach meinem Test sollte Bot als Administrator im Kanal hinzugefügt werden.
Morteza Ziyae

Ja, muss als Administrator hinzugefügt werden, wie es scheint
Stefan Reich

3
ist das noch aktuell? / my_id @ ... scheint nichts zu tun (abgesehen davon, dass diese Nachricht erscheint)
Wal

@wal Ich habe die ID durch 2 Methoden bekommen /start @get_id_botund auch /my_id @get_id_botPlatz scheint wichtig. @get_id_botAls Mitglied hinzufügen und nur Post-Recht als Administrator geben. Entfernen Sie es aus Sicherheitsgründen, sobald Sie einen Ausweis erhalten haben.
Rahoolm

21

Öffnen Sie den privaten Kanal und dann:


WARNINGStellen Sie sicher, dass Sie das Präfix -100 hinzufügen, wenn Sie die Telegramm-Bot-API verwenden:

  • if Die Kanal-ID lautet beispielsweise 1192292378
  • thenSie sollten -1001192292378 verwenden

1
Dies ist der einfachste und korrekteste Weg, um die Kanal-ID zu erhalten, danke!
Tonni

4

Sie können dies auch tun:

Schritt 1) ​​Konvertieren Sie Ihren privaten Kanal in einen öffentlichen Kanal

Schritt 2) Legen Sie den Kanalnamen für diesen Kanal fest

Schritt 3) Dann können Sie diesen Kanal in Privat ändern

Schritt 4) Senden Sie jetzt Ihre Nachricht mit @ChannelName, den Sie in Schritt 3 festgelegt haben

Hinweis: Für Schritt 1 können Sie einen Ihrer öffentlichen Kanäle für kurze Zeit in einen privaten Kanal ändern.


3

Sie müssen den Kanal nicht in öffentlich konvertieren und dann privat machen.

  1. Finden Sie die ID Ihres privaten Kanals. (Es gibt zahlreiche Methoden, um dies zu tun, siehe zum Beispiel diese SO-Antwort )

  2. curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyy/sendMessage " -d "chat_id = -100 CHAT_ID & text = mein Beispieltext"

    Ersetzen Sie xxxxxx: yyyyyyyyyy durch Ihre Bot-ID und ersetzen Sie CHAT_ID durch die in Schritt 1 gefundene Kanal-ID. Wenn also die Kanal-ID 1234 lautet, wäre dies chat_id = -1001234.

Alles erledigt!



1

Im Moment können Sie einen Einladungslink zu bot @username_to_id_bot schreiben und Sie erhalten die ID:

Beispiel: Geben Sie hier die Bildbeschreibung ein

funktioniert auch mit öffentlichen Chats, Kanälen und sogar Benutzern


0

Die Option, die ich mache, ist die Verwendung des beliebten Plus Messenger auf Android. Der Link zum Play Store lautet: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=de

Sie können auf den Kanal klicken und in den Kanalinformationen unter dem Gruppennamen die Kanal-ID finden.

Supergruppen- und Kanal-IDs sehen auf plus messenger wie 1068773197 aus. Für Ihre Verwendung in der API können Sie -100 voranstellen, wodurch es -1001068773197 ergibt.


-1

BENÖTIGTE ANTWORT:

Sie sollten Ihren BOT als Administrator des PRIVATE-Kanals hinzufügen und erstellen , da sonst ein chat not foundFehler auftritt .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.