Come ottenere il chat_id di un canale Telegram privato?


90

Uso curl per aggiornare i miei canali pubblici. Questo tipo di sintassi:

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

Ma che cos'è chat_idun canale privato? Non è quello che hai nell'invito privato.

Perché ora possiamo passare un nome utente del canale (nel formato @channelusername) al posto di chat_id in tutti i metodi (e invece di from_chat_id in forwardMessage). Ma qual è il @channelusername di un canale privato che amministro?


Perché hai bisogno del chat_id del canale? Tutti i metodi di invio al canale utilizzano la stringa "@channel_name"
Stas Parshin,

Ciao @pengrad con comando curl, chiedo a un mio bot di inviare un messaggio a MyChannel. Per un canale pubblico, chat_id è uguale all'ultima parte del suo URL: in telegram.me/MyChannel , chat_id è "MyChannel". I canali privati ​​hanno solo URL di invito come telegram.me/joinchat/AJhkwTviqL_7HWcGZgottQ e chat_id non è "AJhkwTviqL_7HWcGZgottQ". Per questo motivo cerco il chat_id di un canale privato.
aborruso

C'è un modo per eseguire un taxi gratuito senza telegramma?
Shahid Karimi

Risposte:


177

Ho trovato il modo di scrivere nei canali privati.

  1. Dovresti convertirlo in pubblico con un po 'di @channelName
  2. Invia un messaggio a questo canale tramite Bot API

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

  3. In risposta riceverai informazioni con chat_id del tuo canale.

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

  4. Ora puoi riconvertire il canale in privato (eliminando il collegamento del canale) e inviare il messaggio direttamente a questo chat_id "-1001005582487"

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


1
Ho votato la tua domanda e ti ringrazio per i dettagli! Sono perplesso votare la tua risposta qui perché è più un hacking :-). A proposito, la mia domanda generale è: qual è la necessità di un canale privato? Forse i gruppi (i supergruppi recenti) sono un modo migliore? In facs telegram la documentazione non è chiara sui canali privati.
Giorgio Robino

1
Ho provato questo e ha funzionato solo per alcuni minuti. Penso perché una volta che il canale diventa privato c'è un lasso di tempo in cui è ancora raggiungibile pubblicamente: dopo, se provi a impostarlo di nuovo come pubblico, devi ridefinire l'id del canale.
roibeart

1
Dovresti chiarire che dobbiamo inviare il nostro token API accanto al bot al primo slash. Comunque grazie! Era una bella soluzione.
Franco Maldonado il

106

Rendi pubblico il canale non può essere fatto da utenti con almeno 5 gruppi / canali pubblici, quindi ... problema non risolto. Sì, puoi revocarne uno, ma per ora non possiamo recuperare l'ID chat in altro modo.

revocare

Qualcuno ha trovato una soluzione per quel caso?

aggiornare

Ho trovato una soluzione folle:

  1. accedi con il tuo account alla versione web di Telegram: https://web.telegram.org
  2. Trova il tuo canale. Vedi il tuo URL, dovrebbe essere come https://web.telegram.org/#/im?p=c 1055587116 _11052224402541910257
  3. Prendi "1055587116" da esso e aggiungi "-100" come prefisso.

Quindi ... l'ID del tuo canale sarà "-1001055587116". La magia accade :)

Soluzione trovata qui: https://github.com/GabrielRF/telegram-id#web-channel-id


1
Anche il mio nuovo canale è passato da privato / pubblico a privato @channel_username, ma mentre è privato, @channel_usernamenon funziona per me! Ho usato la tua soluzione pubblicata e
ho

signore, sono un sapore di vita!
Juggernaut

1
Non penso che questo -100prefisso funzionerà per sempre, ma dopo 4 anni funziona ancora!
Ali Tou

1
@AliTou Pavel Durov ha appena trovato questo commento e ha deciso di non rimuovere FEATURE, ahah :) Lieto di sentire, che funziona ancora :)
Nigrimmist

31

Il modo più semplice è invitare @get_id_bot nella tua chat e poi digitare:

/my_id @get_id_bot

Nella tua chat


3
Grazie, la migliore risposta!
realmag777

1
Secondo il mio test, il bot dovrebbe essere aggiunto come amministratore nel canale.
Morteza Ziyae

Sì, a quanto pare deve essere aggiunto come amministratore
Stefan Reich

3
è ancora attuale? / my_id @ ... sembra non fare nulla (a parte il messaggio visualizzato)
wal

@wal ho ottenuto l'id con 2 metodi /start @get_id_bote anche lo /my_id @get_id_botspazio sembra importante. Aggiungi @get_id_botcome membro e concedi solo il diritto di post come amministratore. Rimuovilo per sicurezza una volta ottenuto l'ID.
rahoolm

21

Apri il canale privato, quindi:


WARNINGassicurati di aggiungere il prefisso -100 quando usi Telegram Bot API:

  • if l'ID canale è ad esempio 1192292378
  • thendovresti usare -1001192292378

1
Questo è il modo più semplice e corretto per ottenere l'ID canale, grazie!
Tonni

4

Puoi farlo anche tu:

Passaggio 1) Converti il ​​tuo canale privato in canale pubblico

Passaggio 2) Impostare il nome del canale per questo canale

Passaggio 3) quindi puoi cambiare questo canale in privato

Passaggio 4) Invio ora del messaggio utilizzando @ChannelName impostato nel passaggio 3

nota: per il passaggio 1 puoi cambiare uno dei tuoi canali pubblici in privato per un breve periodo.


3

Non è necessario convertire il canale in pubblico, quindi renderlo privato.

  1. trova l'ID del tuo canale privato. (Esistono numerosi metodi per farlo, ad esempio vedi questa risposta SO )

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

    sostituire xxxxxx: yyyyyyyyyyy con il tuo ID bot e sostituire CHAT_ID con l'ID canale trovato nel passaggio 1. Quindi se l'ID canale è 1234, sarebbe chat_id = -1001234.

Tutto fatto!



1

Per ora puoi scrivere un link di invito al bot @username_to_id_bot e otterrai l'id:

esempio: inserisci qui la descrizione dell'immagine

funziona anche con chat pubbliche, canali e persino utenti


0

L'opzione che faccio è usare il popolare Plus Messenger su Android. Il link al Play Store è: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=en

Puoi fare clic sul canale e in Informazioni sul canale sotto il nome del gruppo, puoi trovare l'ID canale.

Supergroup e Channel Ids appariranno come 1068773197 su plus Messenger. Per il tuo utilizzo su API, puoi prefisso -100 che lo renderebbe -1001068773197.


-1

RISPOSTA NECESSARIA:

Dovresti aggiungere e impostare il tuo BOT come amministratore del canale PRIVATO , altrimenti si chat not foundverifica un errore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.