TelegramBots:

entre nesta onda

Vitor Mattos

Fotografem, comentem, twittem!

@VitorMattosRJ

Quem sou eu?

Desenvolvedor PHP desde 2003
Amante de opensource
Evangelista PHP
PHP Zend Certified Engineer ( ZEND024235 )
PHPRio ( https://telegram.me/phprio )

CTO Lyseon Tech
Redes sociais: ( VitorMattos ou VitorMattosRJ )

A Lyseon Tech é uma cooperativa de trabalho com modelo de gestão democrática, segura e eficiente composta por profissionais de T.I. altamente qualificados e experientes no mercado. Prezamos por apresentar vantagens, tanto para o cooperado como para as empresas parceiras.

Cronograma

  • Conhecendo o Telegram
  • API de bots
    • Como funciona?
  • API de client
  • Como criar um bot?
  • Integrações

Resultados a alcançar

  • Conhecer o Telegram
  • Saber como um bot funciona
  • Conhecer os recursos da API de bots
  • Saber os passos básicos para se criar um bot

O que é Telegram?

  • App de mensagens com foco em velocidade e segurança
  • Todas as conversas são criptografados, independentemente do tipo de conversa

O que é Telegram?

  • Em 19 de dezembro de 2013, o apoiador do Telegram, Pavel Durov anunciou que iria dar US$200.000 em Bitcoins a alguém capaz de quebrar a criptografia do mensageiro. Não houve vencedores até hoje.
  • Hoje o prêmio está em US$300.000

O que é Telegram?

  • Baseado na núvem
    Você pode acessr o Telegram com uma única conta em múltiplos devices sem precisar deixar seu celular ligado.

O que é Telegram?

  • Criptografia cliente/servidor em todas as mensagens e em chats secretos com uma camada a mais de criptografia cliente/cliente.
  • Mensagens que podem ser programadas para se autrodestruírem em chats secretos.

O que é Telegram?

  • Permite envio de qualquer tipo de arquivo (odx, pdf, apk, etc) com limite de 1.5gb por arquivo.

O que é Telegram?

  • Sem limites para se compartilhar arquivos.
  • Fotos e vídeos podem ser enviados de forma otimizada ou exatamente como eles são, sem serem manipulados

O que é Telegram?

  • Grupos com até 100.000 membros

O que é Telegram?

  • Criação de grupos especiais para envio de broadcast (apenas admins podem mandar mensagens e ninguém sabe quem mandou).
  • Útil para mandar notícias e informações pontuais como por exemplo notificações de um servidor ou divulgar as novidades de sua empresa.

O que é Telegram?

  • Criação de links para que pessoas possam participar de um grupo. Acessando o link a pessoa é automaticamente direcionada para o grupo.
  • Possibilita a migração de outros grupos para o Telegram
  • Permite divulgar o seu negócio em outras redes sociais

O que é Telegram?

Restrições de poderes para novos administradores

O que é Telegram?

Ban parcial de usuários inconvenientes

O que é Telegram?

  • Cliente para diversas plataformas:
    Android, iPhone, Windows Phone, CLI, web,
    Linux, MacOS, Windows
    Precisando de mais algum client, crie você mesmo!
  • Notificações quando desativadas são realmente desativadas
  • Possibilidade de responder uma mensagem como em um fórum gerando assim notificação para quem mandou a mensagem

O que é Telegram?

  • Criação de username (opcional).
  • Uso de username para gerar um link de conversa direta com você.
    telegram.me/<NomeDeUsuario>
  • Adição de contatos sem precisar do número
  • Possibilidade de citar uma pessoa em um grupo e ela receber notificação mesmo que ela tenha dado mute no grupo.

O que é Telegram?

  • API aberta para uso
  • Protocolo MTProto criado exclusivamente para o Telegram e completamente livre para uso

O que é Telegram?

  • Criação de bots, robôs que podem receber instruções e "dialogar" com os usuários.
  • API de bot 100% aberta para uso
  • Coleção de bots: https://storebot.me/

O que é Telegram?

  • Implementação básica de markdown: 
*bold text*
_italic text_
[text](URL)
`inline fixed-width code`
```pre-formatted fixed-width code block```

O que é Telegram?

  • Login com 2FA em sua aplicação usando o Telegram de forma simples.

O que é Telegram?

  • Integração com sistemas de pagamentos por meio de API de pagamentos

O que é Telegram?

  • Integração com sistemas de pagamentos por meio de API de pagamentos

O que é um chat bot?

Chat - Definição:

Em português significa conversação ou bate-papo, é um neologismo que designa aplicações de conversação em tempo real.

Bot - Definição:

Bot, diminutivo de robot, é uma aplicação de software concebido para simular ações humanas repetidas vezes de maneira padrão, da mesma forma como faria um robô.

É um substituto para os apps?

Interface simples

Interação mais rápida

Proporcionam uma interação natural com humanos

Pessoas usam mais chats do que sites

É um substituto para os apps?

O que posso fazer com bots?

  • Notificações
  • Integração com outros serviços
  • Receber pagamentos de usuários com cartão
  • Criação de ferramentas customizadas
  • Criação de jogos single e multiplayer com HTML5

ChatBots - Interface para aplicações

"Every application needs a slightly optimized set of buttons, just for it.
Steve Jobs, 2007 iPhone launch

ChatBots - lead colector

ChatBots - integra serviços e times

Como se comunicar com bots?

Custom keyboards

Como se comunicar com bots?

Inline keyboard

@gmailBot

@music

@ShopBot

Como se comunicar com bots?

Inline Query

Como se comunicar com bots?

Inline Query

@imdb movie name

@sticker emoji

@music song/artist

@gif key word

@pic key word

@foursquare – Find and send venue addresses

@wiki text

Como se comunicar com bots?

/command [optional] [argument]

Como se comunicar com bots?

Deep linking

Criando um bot

Oi, computador.
Faça um bot.
Com telas bonitas.
Que seja rápido
Que integre com minha aplicação.
E tenha inteligência artificial.
Bjs. S2

Criando um bot

  • Encontre & inicie um chat com o @Botfather
  • /newbot command
  • Informe o nome do bot
  • Informe o username
  • O @BotFather irá te dar o token de acesso

    E só por aqui
    Mais informações:
    https://core.telegram.org/bots

Funcionamento

webhook

Funcionamento

pooling

 E a programação?

show me the code!

Em que linguagem?

Preciso de framework?

Quero código!!!

use Telegram\Bot\Api;

$telegram = new Api('BOT TOKEN');

$response = $telegram->getMe();

$botId = $response->getId();
$firstName = $response->getFirstName();
$username = $response->getUsername();

Olá mundo!

{
    "ok": true,
    "result": {
        "id": 12345678,
        "first_name": "YourBot",
        "username": "YourBot"
    }
}

Quero código!!!

use Telegram\Bot\Api;

$telegram = new Api('BOT TOKEN');

$response = $telegram->sendMessage([
  'chat_id' => 'CHAT_ID', 
  'text' => 'Hello World'
]);

$messageId = $response->getMessageId();

Olá mundo!

{
    "ok": true,
    "result": {
        "message_id": 1,
        "from": {
            "id": 12345678,
            "first_name": "YourBot",
            "username": "YourBot"
        },
        "chat": {
            "id": 1234567890,
            "first_name": "John",
            "last_name": "Doe",
            "username": "JohnDoe",
            "type": "private"
        },
        "date": 1459958199,
        "text": "Hello from Bot!"
    }
}

Natural Language Processing (NLP)

Como divulgar um bot?

Bots exclusivos para Telegram

https://storebot.me/

Como divulgar um bot?

Busca de bots por plataformas

https://botlist.co/​

Perguntas

vitor@lt.coop.br
linkedin.com/in/vitormattos