Estou usando o telegram_bot e tentando obter o ID do groupChat para enviar notificações para o bate-papo em grupo, mas não sei quais métodos eu tenho que usar para isso.
Para obter o ID do bate-papo, uso o message.chat.id quando o bot participou do bate-papo, mas o qual tenho que usar para obter o ID do bate-papo em grupo não consegue encontrar /
telegram
telegram-bot
Roman Podpryatov
fonte
fonte
Respostas:
Para obter o ID do bate-papo em grupo, faça o seguinte:
Adicione o Telegram BOT ao grupo.
Obtenha a lista de atualizações para o seu BOT:
Ex:
Procure o objeto "chat":
Esta é uma amostra da resposta quando você adiciona seu BOT a um grupo.
fonte
getUpdates
solicitação retorna{"ok":true,"result":[]}
mesmo se eu tentar enviar monte de mensagens para o bot grupo e menção via@
e alguns "comandos" aleatórios/my_id
,/start
,/help
. Alguma idéia do que fazer? - UPDATE: OK, remover o bot do grupo e adicionar o bot de volta corrigiu esse problema (também imprimiu o ID de bate-papo no grupo) --- parece que o bot não pode ser adicionado durante a criação do grupo.Aqui está a sequência que funcionou para mim depois de lutar por várias horas:
Suponha que o nome do bot seja my_bot .
1- Adicione o bot ao grupo.
Vá para o grupo, clique no nome do grupo, clique em Adicionar membros, na caixa de pesquisa, procure seu bot como este: @my_bot, selecione seu bot e clique em adicionar.
2- Envie uma mensagem fictícia para o bot.
Você pode usar este exemplo:
/my_id @my_bot
(Tentei algumas mensagens, nem todas as mensagens funcionam. O exemplo acima funciona bem. Talvez a mensagem deva começar com /)
3- Vá para o seguinte URL:
https://api.telegram.org/botXXX:YYYY/getUpdates
substitua XXX: AAAA pelo seu token de bot
4- Procure por "chat": {"id": - zzzzzzzzzz,
-zzzzzzzzzz é o seu ID de bate-papo (com o sinal negativo).
5- Teste: você pode testar o envio de uma mensagem para o grupo com um curl:
Se você perder a etapa 2, não haverá atualização para o grupo que você está procurando. Além disso, se houver vários grupos, você poderá procurar o nome do grupo na resposta ("title": " group_name ").
Espero que isto ajude.
fonte
/
like/test something
deixa getUpdates feliz.Em março de 2020, basta:
Ao ingressar, ele produzirá um arquivo JSON onde seu ID de bate-papo estará localizado em message.chat.id .
Certifique-se de chutar @RawDataBot do seu grupo depois.
fonte
Após meados de 2018:
1 :) Convide @getidsbo ou
@RawDataBot
para o seu grupo e obtenha seu ID de grupo no campo de ID de bate-papo enviado.2 :) use um Messenger não officiclo como o Plus Messenger e veja seu ID de grupo em informações de grupo / canal.
Antes de meados de 2018: (não use)
1: Goto ( https://web.telegram.org )
2: Goto seu Gorup e encontre seu link do Gorup ( https://web.telegram.org/#/im ? p = g154513121 )
3: Copie esse número depois de ge coloque a (-) Antes disso
-154513121
4: Envie sua mensagem para Gorup
bot.sendMessage(-154513121, "Hi")
Testei agora e trabalho como um encanto
fonte
After mid-2018
método.Você pode obter o ID do bate-papo dessa maneira.
No bate-papo particular com seu bot, envie uma mensagem aleatória. Você pesquisará esta mensagem mais tarde.
Obtenha seu token de API em bot_father:
XXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY
Em seguida, no seu navegador, faça uma solicitação com esse URL:
A solicitação retorna uma resposta json. No texto json, pesquise seu
random message
e obtenha o ID do bate-papo nesse objeto.fonte
Usando python e telethon é muito fácil obter o ID do bate-papo. Esta solução é melhor para quem trabalha com a API de telegrama.
Se você não possui teleton, execute o seguinte:
Se você não possui um aplicativo registrado com telegrama, registre um: O link é este: https://my.telegram.org/
Em seguida, execute o seguinte código:
Você pode enviar uma mensagem ao seu grupo para que ele apareça no topo da lista.
fonte
Você pode recuperar o ID do grupo da mesma maneira. Ele aparece no corpo da mensagem como
message.chat.id
e geralmente é um número negativo, onde os bate-papos normais são positivos.Os IDs de grupo e de bate-papo só podem ser recuperados de uma mensagem recebida, não há chamadas disponíveis para recuperar grupos ativos etc. É necessário lembrar o ID do grupo ao receber a mensagem e armazená-la em cache ou algo semelhante.
fonte
crie um bot ou, se já tiver criado, configure da seguinte maneira:
tem acesso a mensagens
aparentemente, independentemente da idade / novidade do grupo Telegram:
adicione bot novamente ao grupo
crie um arquivo de script e execute o
getUpdates
exemplo de método:"chat":{"id":-1001202656383,"title"
Espero que ajude (HTH)
fonte
O bot recebe a seguinte mensagem originada em um grupo de telegrama com um bot coexistindo:
extrair dados conforme necessário
/ * conteúdo
fonte
IMHO, a melhor maneira de fazer isso é usar o TeleThon, mas, como a resposta da apadana está desatualizada além do reparo, vou escrever a solução de trabalho aqui:
esse trecho fornecerá os primeiros
10
bate-papos no seu telegrama.Premissas:
telethon
enest_asyncio
instalouapi_id
eapi_hash
de my.telegram.orgfonte
fonte
Se você estiver implementando seu bot, mantenha armazenado um nome de grupo -> id table e peça-o com um comando. Então você também pode enviar por nome.
fonte