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
Como divulgar um bot?
Busca de bots por plataformas


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







