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_id
von 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?
telegram-bot
aborruso
quelle
quelle
Antworten:
Ich habe den Weg gefunden, in privaten Kanälen zu schreiben.
Senden Sie eine Nachricht über die Bot-API an diesen Kanal
https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123
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 "}}
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
quelle
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.
Hat jemand eine Lösung für diesen Fall gefunden?
aktualisieren
Ich habe eine verrückte Lösung gefunden:
Also ... Ihre Kanal-ID lautet "-1001055587116". Magie passiert :)
Hier gefundene Lösung: https://github.com/GabrielRF/telegram-id#web-channel-id
quelle
@channel_username
, aber während er privat@channel_username
ist, funktioniert er nicht für mich! Ich habe Ihre veröffentlichte Lösung verwendet und gearbeitet-100
Präfix für immer funktionieren wird, aber nach 4 Jahren funktioniert es immer noch!Am einfachsten ist es, @get_id_bot in Ihren Chat einzuladen und dann Folgendes einzugeben:
In deinem Chat
quelle
/start @get_id_bot
und auch/my_id @get_id_bot
Platz scheint wichtig.@get_id_bot
Als Mitglied hinzufügen und nur Post-Recht als Administrator geben. Entfernen Sie es aus Sicherheitsgründen, sobald Sie einen Ausweis erhalten haben.Öffnen Sie den privaten Kanal und dann:
auf Web- Client:
if
Es ist zum Beispiel https://web.telegram.org/#/im?p=c1192292378_2674311763110923980then
1192292378 ist die Kanal-IDauf Handy und Desktop :
if
Es ist zum Beispiel https://t.me/c/1192292378/31then
1192292378 ist die Kanal-ID (Bonus: 31 ist die Nachrichten-ID)auf Plus Messenger für Android :
WARNING
Stellen Sie sicher, dass Sie das Präfix -100 hinzufügen, wenn Sie die Telegramm-Bot-API verwenden:if
Die Kanal-ID lautet beispielsweise 1192292378then
Sie sollten -1001192292378 verwendenquelle
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.
quelle
Sie müssen den Kanal nicht in öffentlich konvertieren und dann privat machen.
Finden Sie die ID Ihres privaten Kanals. (Es gibt zahlreiche Methoden, um dies zu tun, siehe zum Beispiel diese SO-Antwort )
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!
quelle
Die ID Ihres privaten Kanals ist der XXXXXX-Teil (zwischen "p = c" und dem Unterstrich). Um es zu benutzen, füge einfach "-100" davor hinzu. Wenn also "XXXXXX" "4785444554" ist, ist Ihre private Kanal-ID "-1004785444554".
quelle
Im Moment können Sie einen Einladungslink zu bot @username_to_id_bot schreiben und Sie erhalten die ID:
Beispiel:
funktioniert auch mit öffentlichen Chats, Kanälen und sogar Benutzern
quelle
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.
quelle
BENÖTIGTE ANTWORT:
Sie sollten Ihren BOT als Administrator des PRIVATE-Kanals hinzufügen und erstellen , da sonst ein
chat not found
Fehler auftritt .quelle