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_id
qu'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?
telegram-bot
aborruso
la source
la source
Réponses:
J'ai trouvé le moyen d'écrire sur des chaînes privées.
Envoyer un message à ce canal via l'API Bot
https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123
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 "}}
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
la source
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.
Quelqu'un a-t-il trouvé une solution à ce cas?
mettre à jour
J'ai trouvé une solution folle:
Donc ... votre identifiant de chaîne sera "-1001055587116". La magie arrive :)
Solution trouvée ici: https://github.com/GabrielRF/telegram-id#web-channel-id
la source
@channel_username
, mais bien qu'elle soit privée,@channel_username
ne fonctionne pas pour moi! J'ai utilisé votre solution publiée et travaillé-100
préfixe fonctionnera éternellement, mais après 4 ans, il fonctionne toujours!Le moyen le plus simple est d'inviter @get_id_bot dans votre chat, puis de taper:
Dans votre chat
la source
/start @get_id_bot
et l'/my_id @get_id_bot
espace semble également important. Ajouter en@get_id_bot
tant 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é.Ouvrez la chaîne privée, puis:
sur le client Web :
if
c'est par exemple https://web.telegram.org/#/im?p=c1192292378_2674311763110923980then
1192292378 est l'ID du canalsur mobile et ordinateur :
if
c'est par exemple https://t.me/c/1192292378/31then
1192292378 est l'ID du canal (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 Telegram Bot:if
l'ID de canal est par exemple 1192292378then
vous devriez utiliser -1001192292378la source
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.
la source
Pas besoin de convertir la chaîne en public, puis de la rendre privée.
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 )
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é!
la source
L'identifiant de votre chaîne privée est la partie XXXXXX (entre le "p = c" et le trait de soulignement). Pour l'utiliser, ajoutez simplement "-100" devant lui. Donc, si "XXXXXX" est "4785444554", votre identifiant de chaîne privée "-1004785444554".
la source
Pour l'instant, vous pouvez écrire un lien d'invitation vers le bot @username_to_id_bot et vous obtiendrez l'identifiant:
exemple:
fonctionne également avec les chats publics, les chaînes et même les utilisateurs
la source
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.
la source
RÉPONSE NÉCESSAIRE:
Vous devez ajouter et créer votre BOT en tant qu'administrateur du canal PRIVÉ , sinon une
chat not found
erreur se produit.la source