Comment obtenir le chat_id d'une chaîne Telegram privée?

90

J'utilise curl pour mettre à jour mes chaînes publiques. Ce genre de syntaxe:

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

Mais qu'est-ce chat_idqu'une chaîne privée? Ce n'est pas celui que vous avez dans l'invitation privée.

Parce que maintenant, nous pouvons passer un nom d'utilisateur de canal (au format @channelusername) à la place de chat_id dans toutes les méthodes (et au lieu de from_chat_id dans forwardMessage). Mais quel est le @channelusername d'un canal privé que j'administre?

aborruso
la source
Pourquoi avez-vous besoin du chat_id de la chaîne? Toutes les méthodes d'envoi au canal utilisent la chaîne "@channel_name"
Stas Parshin
Salut @pengrad avec la commande curl Je demande à un de mes bot d'envoyer un message à MyChannel. Pour un canal public, le chat_id est égal à la dernière partie de son URL: dans telegram.me/MyChannel , le chat_id est "MyChannel". Les canaux privés n'ont que des URL d'invitation comme telegram.me/joinchat/AJhkwTviqL_7HWcGZgottQ et le chat_id n'est pas "AJhkwTviqL_7HWcGZgottQ". Pour cette raison, je recherche le chat_id d'une chaîne privée.
aborruso
Existe-t-il un moyen de faire fonctionner un taxi libre sans télégramme?
Shahid Karimi le

Réponses:

177

J'ai trouvé le moyen d'écrire sur des chaînes privées.

  1. Vous devriez le convertir en public avec un @channelName
  2. Envoyer un message à ce canal via l'API Bot

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

  3. En réponse, vous obtiendrez des informations avec chat_id de votre chaîne.

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

  4. Vous pouvez désormais reconvertir la chaîne en canal privé (en supprimant le lien de la chaîne) et envoyer un message directement à ce chat_id "-1001005582487"

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

Stas Parshin
la source
1
J'ai voté votre question et je vous remercie pour les détails! Je suis perplexe en votant votre réponse ici car il s'agit plus d'un piratage :-). BTW, ma question générale est: quel est le besoin d'une chaîne privée? Peut-être que les groupes (supergroupes récents) sont un meilleur moyen? Dans la documentation des télégrammes facs, la documentation sur les chaînes privées n'est pas claire.
Giorgio Robino
1
J'ai essayé cela et cela n'a fonctionné que pendant quelques minutes. Je pense qu'une fois que le canal devient privé, il y a un laps de temps où il est toujours accessible publiquement: après, si vous essayez de le redéfinir comme public, vous devez redéfinir l'identifiant du canal.
roibeart
1
Vous devez préciser que nous devons soumettre notre jeton API à côté du bot lors de la première barre oblique. En tout cas merci! C'était une bonne solution.
Franco Maldonado
106

Rendre le canal public ne peut pas être fait par l'utilisateur avec au moins 5 groupes / canaux publics, donc ... problème non résolu. Oui, vous pouvez révoquer l'un d'entre eux, mais pour l'instant, nous ne pouvons pas récupérer l'identifiant de chat d'une autre manière.

révoquer

Quelqu'un a-t-il trouvé une solution à ce cas?

mettre à jour

J'ai trouvé une solution folle:

  1. connectez-vous sous votre compte à la version Web de Telegram: https://web.telegram.org
  2. Trouvez votre chaîne. Voir votre URL, elle devrait être comme https://web.telegram.org/#/im?p=c 1055587116 _11052224402541910257
  3. Saisissez "1055587116" et ajoutez "-100" comme préfixe.

Donc ... votre identifiant de chaîne sera "-1001055587116". La magie arrive :)

Solution trouvée ici: https://github.com/GabrielRF/telegram-id#web-channel-id

Nigrimmist
la source
1
Même ma nouvelle chaîne a basculé privé / public / privé pour définir @channel_username, mais bien qu'elle soit privée, @channel_usernamene fonctionne pas pour moi! J'ai utilisé votre solution publiée et travaillé
MohaMad
vous monsieur, êtes une saveur de vie!
Juggernaut
1
Je ne pense pas que ce -100préfixe fonctionnera éternellement, mais après 4 ans, il fonctionne toujours!
Ali Tou
1
@AliTou Pavel Durov vient de trouver ce commentaire et a décidé de ne pas supprimer FEATURE, ahah :) Heureux d'entendre, que cela fonctionne toujours :)
Nigrimmist
32

Le moyen le plus simple est d'inviter @get_id_bot dans votre chat, puis de taper:

/my_id @get_id_bot

Dans votre chat

Jurgo Boemo
la source
3
Merci, la meilleure réponse!
realmag777
1
Selon mon test, le bot devrait être ajouté en tant qu'administrateur dans le canal.
Morteza Ziyae
Oui, doit être ajouté en tant qu'administrateur, il semble
Stefan Reich
3
est-ce toujours d'actualité? / my_id @ ... ne semble rien faire (à part faire apparaître ce message)
wal
@wal J'ai obtenu l'identifiant par 2 méthodes /start @get_id_botet l' /my_id @get_id_botespace semble également important. Ajouter en @get_id_bottant que membre et ne donner que le droit de publication en tant qu'administrateur. Retirez-le pour des raisons de sécurité une fois que vous obtenez une pièce d'identité.
rahoolm
22

Ouvrez la chaîne privée, puis:


WARNINGassurez-vous d' ajouter le préfixe -100 lors de l'utilisation de l'API Telegram Bot:

  • if l'ID de canal est par exemple 1192292378
  • thenvous devriez utiliser -1001192292378
Fabio Michelini
la source
2
C'est le moyen le plus simple et le plus correct d'obtenir un identifiant de chaîne, merci!
Tonni le
4

Vous pouvez aussi faire ceci:

Étape 1) Convertissez votre chaîne privée en chaîne publique

Étape 2) Définissez le ChannelName pour ce canal

Étape 3) alors vous pouvez changer cette chaîne en privé

Étape 4) Envoi maintenant de votre message en utilisant @ChannelName que vous avez défini à l'étape 3

Remarque: pour l'étape 1, vous pouvez changer l'une de vos chaînes publiques en privé pendant une courte période.

Mohammad Abdolahzadeh
la source
3

Pas besoin de convertir la chaîne en public, puis de la rendre privée.

  1. trouvez l'identifiant de votre chaîne privée. (Il existe de nombreuses méthodes pour ce faire, par exemple voir cette réponse SO )

  2. curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyyy/sendMessage " -d "chat_id = -100 CHAT_ID & text = mon exemple de texte"

    remplacez xxxxxx: yyyyyyyyyyy par votre identifiant de bot, et remplacez CHAT_ID par l'identifiant de canal trouvé à l'étape 1. Donc, si l'identifiant de canal est 1234, ce serait chat_id = -1001234.

Terminé!

Apadana
la source
1

Pour l'instant, vous pouvez écrire un lien d'invitation vers le bot @username_to_id_bot et vous obtiendrez l'identifiant:

exemple: entrez la description de l'image ici

fonctionne également avec les chats publics, les chaînes et même les utilisateurs

crystalbit
la source
0

L'option que je fais est d'utiliser le populaire Plus Messenger sur Android. Le lien Play Store est: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=en

Vous pouvez cliquer sur la chaîne et dans les informations de la chaîne sous le nom du groupe, vous pouvez trouver l'ID de la chaîne.

Les identifiants de supergroupe et de chaîne ressembleront à 1068773197 sur plus Messenger. Pour votre utilisation sur l'API, vous pouvez préfixer -100 ce qui le rendrait -1001068773197.

Habeeb
la source
-1

RÉPONSE NÉCESSAIRE:

Vous devez ajouter et créer votre BOT en tant qu'administrateur du canal PRIVÉ , sinon une chat not founderreur se produit.

T.Todua
la source