Utilizo curl para actualizar mis canales públicos. Este tipo de sintaxis:
curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text"
Pero, ¿qué es chat_id
un canal privado? No es el que tienes en la invitación privada.
Porque ahora podemos pasar un nombre de usuario de canal (en el formato @channelusername) en el lugar de chat_id en todos los métodos (y en lugar de from_chat_id en forwardMessage). Pero, ¿cuál es el @channelusername de un canal privado que administro?
telegram-bot
aborruso
fuente
fuente
Respuestas:
Encontré la forma de escribir en canales privados.
Enviar mensaje a este canal a través de Bot API
https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123
Como respuesta, obtendrás información con chat_id de tu canal.
{"ok": true, "result": {"chat": { "id": -1001005582487, "title": "Test Private Channel", "type": "channel"}, "date": 1448245538, " message_id ": 7," text ":" 123ds "}}
Ahora puede volver a convertir el canal en privado (eliminando el enlace del canal) y enviar un mensaje directamente a este chat_id "-1001005582487"
https://api.telegram.org/bot111:222/sendMessage?chat_id=-1001005582487&text=123
fuente
Hacer público el canal no lo puede hacer el usuario con al menos 5 grupos / canales públicos, así que ... problema no resuelto. Sí, puede revocar uno de ellos, pero por ahora, no podemos recuperar la identificación del chat de otra manera.
¿Alguien encontró una solución para ese caso?
actualizar
Encontré una solución loca:
Entonces ... tu ID de canal será "-1001055587116". La magia sucede :)
Solución encontrada aquí: https://github.com/GabrielRF/telegram-id#web-channel-id
fuente
@channel_username
, pero aunque es privado, ¡@channel_username
no funciona para mí! He utilizado su solución publicada y funcionó-100
prefijo funcione para siempre, ¡pero después de 4 años todavía funciona!La forma más fácil es invitar a @get_id_bot en su chat y luego escribir:
Dentro de tu chat
fuente
/start @get_id_bot
y también el/my_id @get_id_bot
espacio parece importante. Agregue@get_id_bot
como miembro y otorgue solo el derecho de publicación como administrador. Quítelo por seguridad una vez que obtenga la identificación.Abra el canal privado, luego:
en el cliente web :
if
es, por ejemplo, https://web.telegram.org/#/im?p=c1192292378_2674311763110923980then
1192292378 es el ID del canalen dispositivos móviles y computadoras de escritorio :
if
es por ejemplo https://t.me/c/1192292378/31then
1192292378 es el ID del canal (bonificación: 31 es el ID del mensaje)en Plus Messenger para Android :
WARNING
asegúrese de agregar el prefijo -100 cuando use Telegram Bot API:if
el ID del canal es, por ejemplo, 1192292378then
deberías usar -1001192292378fuente
Tú también puedes hacer esto:
Paso 1) Convierte tu canal privado en canal público
Paso 2) Establezca el nombre del canal para este canal
Paso 3) entonces puedes cambiar este canal a privado
Paso 4) Ahora envíe su mensaje usando @ChannelName que configuró en el paso 3
nota: para el paso 1, puede cambiar uno de sus canales públicos a privado durante un breve período de tiempo.
fuente
No es necesario convertir el canal a público y luego hacerlo privado.
encuentra la identificación de tu canal privado. (Existen numerosos métodos para hacer esto, por ejemplo, vea esta respuesta SO )
curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyyy/sendMessage " -d "chat_id = -100 CHAT_ID & text = mi texto de muestra"
reemplace xxxxxx: yyyyyyyyyyy con su identificación de bot y reemplace CHAT_ID con la identificación de canal que se encontró en el paso 1. Entonces, si la identificación de canal es 1234, sería chat_id = -1001234.
¡Todo listo!
fuente
La identificación de su canal privado es la parte XXXXXX (entre "p = c" y el guión bajo). Para usarlo, simplemente agregue "-100" delante de él. Entonces, si "XXXXXX" es "4785444554", su ID de canal privado es "-1004785444554".
fuente
Por ahora, puede escribir un enlace de invitación al bot @username_to_id_bot y obtendrá la identificación:
ejemplo:
también funciona con chats públicos, canales e incluso usuarios
fuente
La opción que hago es usar el popular Plus Messenger en Android. El enlace de Play Store es: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=en
Puede hacer clic en el canal y en la información del canal debajo del nombre del grupo, puede encontrar la identificación del canal.
Los identificadores de supergrupo y de canal se verán como 1068773197 en plus messenger. Para su uso en API, puede prefijar -100, lo que lo haría -1001068773197.
fuente
RESPUESTA NECESARIA:
Debe agregar y hacer su BOT como administrador del canal PRIVADO ; de lo contrario, se producirá un
chat not found
error.fuente