Skip to content

MarcusAdriano/tabnews_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tabnews BOT

BOT para Telegram criado com o intuito de estudar Golang e aprender sobre a API do Tabnews.

Fique a vontade para contribuir ;)

Para acessar o bot no Telegram (o QR code abaixo também funciona): @tabnews_bot

qrcode

Getting started

  1. Clone o projeto em sua máquina.
git clone https://github.com/MarcusAdriano/tabnews_bot
  1. Crie seu próprio bot para que você possa realizar seus testes.

Acesse o @BotFather e siga as instruções. É um processo tranquilo.

No final do processo um Token será gerado e é ele que você vai utilizar para se comunicar com o seu bot.

  1. Executando o projeto.
export TELEGRAM_BOT_TOKEN={{token}}
go run main.go telegram --local

CLI de Webhooks de Bots do Telegram

Basicamente há duas formas de executar um bot Telegram: Polling ou via Webhook.

Há nesse projeto ambas as implementações. Por que? O polling com certeza não é otimizado para deploy na Nuvem onde geralmente paga-se por tempo de CPU, mas é fantástico e simples para realizarmos testes em ambiente local. Logo o polling foi pensado para ser executado localmente enquanto o modelo webhook em ambiente produtivo.

Vale ressaltar que a implementação utilizando webhook foi elaborada utilizando AWS Lambda (onde quando ninguém está falando com o bot, o custo é próximo de zero).

Esse CLI permite alterar, deletar e consultar informações do webhook cadastrado para o bot.

  1. Consulta
go run script/telegram/main.go webhook -t {{token}} get

Resultado:

{
  "url": "https://example.com/endpoint/que/voce/quiser",
  "has_custom_certificate": false,
  "pending_update_count": 0,
  "ip_address": "123.45.67.89",
  "max_connections": 40
}
  1. Alteração

Esse é o comando que há mais opções, segue sua documentação abaixo do exemplo:

go run script/telegram/main.go webhook -t {{token}} set -w https://example.com -s hello_world -m 10 -d
Set webhook details

Usage:
  telegram webhook set [flags]

Flags:
  -a, --allowed_updates stringArray   Allowed updates
  -d, --drop_pending_updates          Drop pending updates
  -h, --help                          help for set
  -m, --max_connections int           Max connections (default 40)
  -s, --secret_token string           Secret token
  -w, --webhook string                Webhook URL

Global Flags:
  -u, --telegramApiUrl string   Telegram API URL (default "https://api.telegram.org/bot%s/%s")
  -t, --token string            Telegram bot token
  1. Delete

Esse é simples quando o primeiro (get):

go run script/telegram/main.go webhook -t {{token}} delete

TODO

  • Testes unitários
  • Separar as regras das mensagens do BOT
  • Automatizar o deploy da aplicação (CI e CD)