Eu uso o curl para atualizar meus canais públicos. Este tipo de sintaxe:
curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text"
Mas qual é o efeito chat_id
de um canal privado? Não é o que você tem no convite privado.
Porque agora podemos passar um nome de usuário do canal (no formato @channelusername) no lugar de chat_id em todos os métodos (e em vez de from_chat_id em forwardMessage). Mas qual é o @channelusername de um canal privado que eu administro?
telegram-bot
aborruso
fonte
fonte
Respostas:
Descobri como escrever em canais privados.
Envie mensagem para este canal através da API do Bot
https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123
Como resposta, você receberá informações com chat_id de seu canal.
{"ok": true, "result": {"chat": { "id": -1001005582487, "title": "Test Private Channel", "type": "channel"}, "date": 1448245538, " message_id ": 7," text ":" 123ds "}}
Agora você pode converter o canal de volta para privado (excluindo o link do canal) e enviar mensagem diretamente para este chat_id "-1001005582487"
https://api.telegram.org/bot111:222/sendMessage?chat_id=-1001005582487&text=123
fonte
Tornar canal público não pode ser feito por usuário com pelo menos 5 grupos / canais públicos, então ... problema não resolvido. Sim, você pode revogar um deles, mas por enquanto, não podemos recuperar o id do bate-papo de outra forma.
Alguém encontrou solução para esse caso?
atualizar
Encontrei uma solução maluca:
Então ... seu id de canal será "-1001055587116". A mágica acontece :)
Solução encontrada aqui: https://github.com/GabrielRF/telegram-id#web-channel-id
fonte
@channel_username
, mas embora seja privado,@channel_username
não está funcionando para mim! Usei sua solução postada e funcionou-100
prefixo funcione para sempre, mas depois de 4 anos ainda funciona!A maneira mais fácil é convidar @get_id_bot para o seu bate-papo e digitar:
Dentro do seu chat
fonte
/start @get_id_bot
e também o/my_id @get_id_bot
espaço parece importante. Adicionar@get_id_bot
como membro e dar apenas direito de postagem como Administrador. Remova-o por segurança assim que conseguir a identificação.Abra o canal privado e:
no cliente web :
if
é, por exemplo, https://web.telegram.org/#/im?p=c1192292378_2674311763110923980then
1192292378 é o ID do canalno celular e desktop :
if
é, por exemplo, https://t.me/c/1192292378/31then
1192292378 é o ID do canal (bônus: 31 é o ID da mensagem)no Plus Messenger para Android :
WARNING
certifique-se de adicionar o prefixo -100 ao usar a API do Telegram Bot:if
o ID do canal é, por exemplo, 1192292378then
você deve usar -1001192292378fonte
Você também pode fazer isso:
Etapa 1) Converter seu canal privado em canal público
Etapa 2) Definir o nome do canal para este canal
Etapa 3) então você pode alterar este canal para privado
Etapa 4) Agora, enviando sua mensagem usando @ChannelName que você definiu na etapa 3
nota: para a etapa 1, você pode alterar um de seus canais públicos para privado por um curto período.
fonte
Não há necessidade de converter o canal em público e torná-lo privado.
encontre o id do seu canal privado. (Existem vários métodos para fazer isso, por exemplo, veja esta resposta SO )
curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyyy/sendMessage " -d "chat_id = -100 CHAT_ID & text = meu texto de amostra"
substitua xxxxxx: yyyyyyyyyyy pelo seu id de bot, e substitua CHAT_ID pelo id do canal encontrado na etapa 1. Portanto, se o id do canal for 1234, seria chat_id = -1001234.
Tudo feito!
fonte
O id do seu canal privado é a parte XXXXXX (entre o "p = c" e o sublinhado). Para usá-lo, basta adicionar "-100" na frente dele. Portanto, se "XXXXXX" for "4785444554", seu ID de canal privado "-1004785444554".
fonte
Por enquanto, você pode escrever um link de convite para bot @username_to_id_bot e obterá a id:
exemplo:
também funciona com chats públicos, canais e até usuários
fonte
A opção que faço é usar o popular Plus Messenger no Android. O link da Play Store é: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=en
Você pode clicar no canal e em Informações do canal abaixo do nome do grupo, você pode encontrar o Id do canal.
Os IDs de supergrupo e canal serão semelhantes a 1068773197 no plus messenger. Para seu uso na API, você pode prefixar -100, o que tornaria -1001068773197.
fonte
RESPOSTA NECESSÁRIA:
Você deve adicionar e tornar seu BOT como administrador do canal PRIVADO , caso contrário,
chat not found
ocorrerá um erro.fonte