Criando um BOT para o Telegram com Python

O que vamos ver:

  • O que são Bots?
  • Telegram é muito legal
  • O que são APIs?
  • Python, porque sim! (e também muito legal)
  • import @BotFather
  • Usando Python para escrever o Bot
  •  
  • IRC - bots faziam tarefas do admin do canal
  • Usados para ataques
  • Spam
  • Crawlers (Google)
  • Web Scraping
  • Atendimento virtual

Telegram

  • API aberta
  • Stickers (e você desenvolver Stickers também)
  • Personal Storage
  • Mensagens secretas
  • Plataforma para Bots

Bots no Telegram

  • É obrigatório identificar que é um Bot e não uma conta de usuário; 
  • Crawlers, Atendentes, Integrar com serviços
  • Internet das Coisas
  • Inteligência Artificial
  • Games!

Aurium's Bot - Bot do RaulHC

  • Reações aos "rs" "kkkk" "hihihi"
  • Interações surpresas
  • Faz cálculos
  • Joga Jogo da Velha
  • Faz pesquisa na Web para buscar conceitos e definições "O que é..."
  • To-do list e lembretes
  • "Tem gente no Raul?"
Desenvolvido pelo Aurélio Heckert: https://gitlab.com/raulhc/telegram-bot

Onde posso encontrar

mais Bots?

  • https://storebot.me/

  • Repositórios do Github e Gitlab

Game bots

  • Gaming Plataform
  • HTML5
  • Agora você pode jogar com outros usuários dentro do chat ou grupo
  • Não aumenta o uso de espaço na memória
  • Leia mais em:
    https://telegram.org/blog/games
  • Crie o seu em:
    https://core.telegram.org/bots/games

Alguns destaques

  • Bots não podem iniciar conversas (nada de spam)

  • Não possuem status

  • Armazenamento na nuvem limitado

  • Estará identificado como "Bot" ou no final ou no início do nome

  • Não possui acesso as suas mensagens

O que são APIs?

Application Programming Interface

"Na prática, uma API é simplesmente a exposição de uma série de ferramentas, métodos de programação e protocolos, com o objetivo de facilitar a programação de uma aplicação." - Sensedia.com

The @BotFather

Hands On!
Criando seu primeiro Bot

  1. Inicie uma conversa com o @BotFather
     
  2. Digite /start

Configurando

  1. Digite /new bot
  2. Token de acesso (guarde para você. Esta é a autenticação de que ele é seu. Não esponha seu Token)
  3. Descrição (o que esse Bot pode fazer)
  4. About (instruções ou informações detalhadas)

Nomeie seu Bot

  • Dica: para melhor identificação, use a funcionalidade que deseja no nome do Bot
  • Exemplo:
    TechcrunchBot
    EvernoteBot
    LikeBot
    StoremeBot
  • Sempre que precisar, cancele a operação em andamento com /cancel

Lista de Comandos

Lista completa em: https://core.telegram.org/bots#commands
*Não pode ultrapassar 32 caracteres

/get_messages_stats
/set_timer 10min Alarm!
/get_timezone Salvador, BR

Num grupo com mais de um Bot, solicite identificando
comando+Bot:

/start@AuriumsBot
/start@LikeBot

Chatfuel.com
(antigo PaquetBot)

É uma plataforma para criar Bots, sem códigos, sem servidores, gratuitamente.

 

Porém, atingindo 100,000 conversações/mês, é pausado para o upgrade.

 

>> Copie o <Token de acesso> do Bot com o @BotFather
>> Inicie uma conversa com o @chatfuelbot
>> Digite /start e escolha o idioma de preferência
>> Digite /addbot + <Token de acesso>
ou >> Encaminhe a mensagem do <Token de acesso> para o @chatfuelbot
>> Clique no link enviado pelo @chatfuel (tlg.me/<nome do seu bot>
>> Customize seu bot mais tarde
>> Digite /chatfuel ou '/'
>> Digite /automate
>> Digite /autoposting
>> Selecione RSS
>> Digite a URL do Feed que deseja
>> E voilá!

python-telegram-bot

python-telegram-bot

$ cd pasta
$ Criar a myenv ou usando o wrapper (em casa ou no seu PC/notebook)
$ pip install python-telegram-bot
$ python
>>> import telegram
>>> bot = telegram.Bot(token='<token>')

Seu primeiro com Python

import telegram


def hello():
    bot = telegram.Bot('seu:token')

    update_id = None

    while True:
        for update in bot.getUpdates(offset=update_id):
            update_id = update.update_id + 1

            if update.message:
                text = 'Hello {}!'.format(update.message.from_user.first_name)
                bot.sendMessage(update.message.chat_id, text)

if __name__ == '__main__':
    hello()

Mais links

  • Documentação:

    • pythonhosted.org/python-telegram-bot
  • Wiki:

    • github.com/python-telegram-bot/python-telegram-bot/wiki
  • Comunidade (en):

    • telegram.me/pythontelegrambotgroup
  • Comunidade (pt-br):

    • telegram.me/DesenvolvimentoDeRobos

Tutoriais e introdução a Python

  • Minicurso criado pela Gabriela Cavalcanti (Fundadora PyLadies Brasil/Natal) http://bit.ly/2fRr1Hf
  • PyLadies São Paulo
    https://github.com/PyLadiesSP/Cursos
  • Python para Zumbies - F. Masanori

 

Outras possibilidades

Outras possibilidades

Bot + Telegram + Python

By Geisa Santos

Bot + Telegram + Python

Oficina de Python - criando um Bot para Telegram. Material in progress

  • 899