Git Product home page Git Product logo

tabnews_bot's Introduction

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)

tabnews_bot's People

Contributors

marcusadriano avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.