telegram bot - sendphoto - ¿Cómo obtener el chat_id de un canal privado de Telegram?
telegram bot set webhook (8)
Uso 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, ¿cuál es el
chat_id
de un canal privado?
No es el que tienes en la invitación privada.
Porque ahora podemos pasar un nombre de usuario del canal (en el formato @channelusername) en 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?
Abra el canal privado, luego:
-
en cliente web :
- mira la URL en tu navegador:
-
if
es, por ejemplo, https://web.telegram.org/#/im?p=c1192292378_2674311763110923980 -
then
1192292378 es la ID del canal
-
en dispositivos móviles y de escritorio :
- copie el enlace de cualquier mensaje del canal:
-
if
es por ejemplo https://t.me/c/1192292378/31 -
then
1192292378 es la ID del canal (bono: 31 es la ID del mensaje)
-
en Plus Messenger para Android :
- abre la información del canal:
- la ID del canal aparece arriba , justo debajo de su nombre
WARNING
asegúrese de
agregar el prefijo -100
cuando use la API de Bot de Telegram:
-
if
la ID del canal es, por ejemplo, 1192292378 -
then
deberías usar -1001192292378
Encontré la manera de escribir en canales privados.
- Debería convertirlo en público con algunos @channelName
-
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": verdadero, "resultado": {"chat": { "id": -1001005582487, "título": "Probar canal privado", "tipo": "canal"}, "fecha": 1448245538, " message_id ": 7," text ":" 123ds "}}
-
Ahora puede convertir el canal nuevamente a 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
Hacer que el canal sea público no puede ser realizado por un usuario con al menos 5 grupos / canales públicos, así que ... el problema no está resuelto. Sí, puede revocar uno de ellos, pero por ahora, no podemos recuperar la identificación de chat de otra manera.
¿Alguien encontró una solución para ese caso?
actualizar
Encontré una solución loca:
- inicie sesión con su cuenta en la versión web de Telegram: https://web.telegram.org
- Encuentra tu canal. Consulte su URL, debe ser como https://web.telegram.org/#/im?p=c 1055587116 _11052224402541910257
- Tome "1055587116" y agregue "-100" como prefijo.
Entonces ... la identificación de tu canal será "-1001055587116". Magia suceda :)
Solución encontrada aquí: https://github.com/GabrielRF/telegram-id#web-channel-id
La forma más fácil es invitar a @get_id_bot en su chat y luego escribir:
/my_id@get_id_bot
Dentro de tu chat
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.
Supergroup y Channel Ids se verán como 1068773197 en plus messenger. Para su uso en API, puede prefijar -100, lo que lo haría -1001068773197.
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: aaaaaaaaaaa con su ID de bot, y reemplace CHAT_ID con la identificación del canal que se encuentra en el paso 1. Entonces, si la identificación del canal es 1234, sería chat_id = -1001234.
¡Todo listo!
También puedes hacer esto:
Paso 1) Convierta su canal privado en canal público
Paso 2) Establezca el ChannelName para este canal
Paso 3) entonces puedes cambiar este canal a privado
Paso 4) Ahora envía tu mensaje usando @ChannelName que estableciste en el paso 3
nota: Para el Paso 1, puede cambiar uno de sus canales públicos a privado por un corto tiempo.
- Abra la web de Telegram en https://web.telegram.org
- busca tu canal privado
- Mira la URL. Es como: https://web.telegram.org/#/im?p=cXXXXXXXXXX_578236787445474833
La identificación de su canal privado es la parte XXXXXX (entre la "p = c" y el guión bajo). Para usarlo, simplemente agregue "-100" delante de él. Por lo tanto, si "XXXXXX" es "4785444554" su ID de canal privado "-1004785444554".