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=my sample text"
Mais quel est le chat_id
d'un canal privé? 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?
J'ai trouvé le moyen d'écrire dans les canaux privés.
Envoyer un message à ce canal via Bot API
https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=12
En réponse, vous obtiendrez des informations avec chat_id de votre chaîne.
{"ok": true, "résultat": {"chat": { "id": -1001005582487, "titre": "Tester la chaîne privée "," type ":" canal "}," date ": 1448245538," message_id ": 7," text ":" 123ds "}}
Maintenant, vous pouvez reconvertir la chaîne en 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=12
Rendre le canal public ne peut pas être fait par 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 du chat d'une autre manière.
Quelqu'un a-t-il trouvé une solution à ce cas?
mettre à jour
J'ai trouvé une solution folle:
Alors ... 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 conversation, puis à taper:
/my_id@get_id_bot
Dans votre chat
Vous pouvez aussi faire ceci:
Étape 1) Convertissez votre canal privé en canal public
Étape 2) Définir le nom du canal pour ce canal
Étape 3) Vous pouvez alors changer ce canal en privé
Étape 4) Envoi de votre message à l'aide de @NomChannel que vous avez défini à l'étape 3
remarque: pour l'étape 1, vous pouvez changer l'un de vos canaux publics en privé pendant une courte période.
Ouvrez le canal privé, puis:
sur le client web :
if
c'est par exemple https://web.telegram.org/#/im?p=c1192292378_267431176311092398then
1192292378 est l'ID du canal.sur mobile et Bureau :
if
c'est par exemple https://t.me/c/1192292378/31then
1192292378 est l'identifiant de la chaîne (bonus: 31 est l'ID du message)sur Plus Messenger pour Android :
WARNING
assurez-vous d'ajouter le préfixe -100 lors de l'utilisation de l'API de Telegram Bot:
if
l'identifiant du canal est par exemple 1192292378then
vous devriez utiliser - 1001192292378 Pas besoin de convertir le canal en public puis de le rendre privé.
trouvez l'identifiant de votre canal privé. (Il existe de nombreuses méthodes pour ce faire, voir par exemple this SO answer )
curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyy/sendMessage " -d "ID_Chat = - 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. Ainsi, si l'identifiant de canal est 1234, il s'agira de chat_id = -1001234.
Terminé!
L'identifiant de votre canal privé est la partie XXXXXX (entre le "p = c" et le trait de soulignement). Pour l'utiliser, il suffit d'ajouter "-100" devant. Donc, si "XXXXXX" est "4785444554" votre identifiant de canal privé "-1004785444554".
L'option que je fais est en utilisant le populaire Plus Messenger sur Android. Le lien Play Store est: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=fr
Vous pouvez cliquer sur la chaîne et dans Informations sur la chaîne, sous le nom du groupe, vous pouvez trouver l'identifiant de la chaîne.
Les identifiants de super groupe et de canal ressembleront à 1068773197 sur plus Messenger. Pour votre utilisation sur l'API, vous pouvez préfixer -100, ce qui en ferait -1001068773197.