Comment obtenir le chat_id d’un canal Telegram privé?

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

curl -X POST ” https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage ” -d “chat_id = @ MyChannel & text = mon exemple de texte”

Mais quel est le chat_id d’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?

Je vous remercie

    J’ai trouvé le moyen d’écrire dans des chaînes privées.

    1. Vous devriez le convertir en public avec certains @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 canal privé”, “type”: “channel”}, “date”: 1448245538, ” message_id “: 7,” text “:” 123ds “}}

    4. Maintenant, vous pouvez convertir Channel en privé (en supprimant le lien du canal) et envoyer le message directement à ce chat_id “-1001005582487”

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

    Rendre le canal public ne peut pas être fait par l’utilisateur avec exist au moins 5 groupes / canaux publics, donc … problème non résolu. Oui, vous pouvez en révoquer un, mais pour l’instant, nous ne pouvons pas récupérer l’identifiant de chat autrement.

    révoquer

    Quelqu’un at-il trouvé une solution pour 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, il devrait être comme https://web.telegram.org/#/im?p=c 1055587116 _11052224402541910257
    3. Prenez “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

    Le moyen le plus simple consiste à inviter @get_id_bot dans votre chat puis à taper:

     /my_id@get_id_bot 

    Dans votre chat

    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 ce canal en privé

    Étape 4) Envoi de votre message à l’aide de @ChannelName défini à l’étape 3

    note: pour l’étape 1, vous pouvez modifier l’une de vos chaînes publiques en mode privé pendant une courte période.

    Pas besoin de convertir le canal en public puis le rendre privé.

    1. Trouvez l’id de votre chaîne privée. (Il existe de nombreuses méthodes pour faire cela, 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: aaaaaaaaaaa par votre identifiant de robot et remplacez CHAT_ID par l’identifiant de canal trouvé à l’étape 1. Donc, si l’identifiant de canal est 1234, il s’agirait de chat_id = -1001234.

    Terminé!