webhook sendphoto saber org como bot telegram-bot

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:

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.

  1. Debería convertirlo en público con algunos @channelName
  2. Enviar mensaje a este canal a través de Bot API

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

  3. 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 "}}

  4. 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:

  1. inicie sesión con su cuenta en la versión web de Telegram: https://web.telegram.org
  2. Encuentra tu canal. Consulte su URL, debe ser como https://web.telegram.org/#/im?p=c 1055587116 _11052224402541910257
  3. 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.

  1. encuentra la identificación de tu canal privado. (Existen numerosos métodos para hacer esto, por ejemplo, vea esta respuesta SO )

  2. 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.