Bot para gerenciar caronas usado no Telegram.
Table of Contents generated with DocToc
- Caronas Bot
- Sobre
- Getting Started
- Criação de um Bot
- [Configuração do servidor PHP no Heroku](#configura%C3%A7%C3%A3o-do-servidor-php-no-heroku)
- [Criação de conta no Heroku](#cria%C3%A7%C3%A3o-de-conta-no-heroku)
- Criação do Banco de Dados
- Configuração do Banco de Dados
- Criação de aplicação
- Configuração das variáveis de ambiente
- Deploy
- Configuração de webhooks
- Configuração de comandos do Bot
- Comece a usar
- License
- Adicionar/Remover caronas com horário, número de vagas e origm/destino
- Exibir lista com as caronas de ida e volta
1.2.0
Todo o código foi escrito em PHP integrando com a Bot API do Telegram.
Alterações feitas a partir do código original em https://github.com/henriquemaio/CaronasBot. Novas funcionalidades como o número de vagas disponíveis e o trajeto. Adicione uma issue ou faça um pull request.
Tutorial de como utilizar esse código para implementar um novo bot no Telegram com configurações próprias.
Para criar um bot, você deve iniciar uma conversa com o BotFather. Para conhecer os comandos, utilize o comando:
/help
Para criar um novo Bot, utilize o comando:
/newbot
O BotFather vai solicitar que digite um nome e um username para o seu Bot. Ao finalizar, será retornado um token para utilizar a API.
Configuração do servidor PHP no Heroku
Criação de conta no Heroku
Caso não possua conta, cria uma conta gratuita em https://signup.heroku.com/
No canto superior esquerdo, ao lado de Dashboard, clique no botão de menu e selecione Databases. Na dela de Databases, clique em Create Database. Escolha a opção Other plans: Dev Plan (Free) e em Add Database.
Quando o Banco estiver Available, clique em seu nome. Nessa tela, guarde as informações de host, database, password e user.
Para acessar o Banco de Dados, você deve ter o Postgres instalado localmente.
No terminal, execute o comando, onde [db_name] é o nome e o [db_type] é um tipo definido pelo Heroku do Banco de Dados recém criado. O comando de cada base de dados pode ser visto em Psql dentro de suas Connections Settings:
heroku pg:psql --app [db_name] [db_type]
Ao logar, copie o comando em database/script.sql e execute:
=> create table Caroneiros(
id bigserial UNIQUE PRIMARY KEY,
chat_id int NOT NULL,
user_id int NOT NULL,
username varchar(128),
spots varchar(128),
location varchar(128),
travel_hour time,
route bit not null
);
No dashboard, clique no sinal de + no canto superior direito para criar uma nova aplicação.
Digite o nome de sua escolha e clique em criar.
Acesse Settings e clique em Reveal Config Vars. Adicione:
- KEY: API_KEY_TELEGRAM, VALUE: [token criado pelo BotFather]
- KEY: BOT_NAME, VALUE: [nome definido para o BotFather]
- KEY: DB_HOST, VALUE: [host]
- KEY: DB_NAME, VALUE: [database]
- KEY: DB_PASS, VALUE: [password]
- KEY: DB_USER, VALUE: [user]
- KEY: SOURCE, VALUE: Local das caronas (Ex: Fundão)
No menu superior, selecione Deploy. Selecione GitHub como Deployment Method e conecte ao repositório. Selecione o branch master e faça o deploy.
Acesse no navegador a url: https://api.telegram.org/bot[token]/setwebhook?url=[api] Onde [token] é o token fornecido pelo BotFather e [api] é o domínio da aplicação no Heroku. Você deve visualizar algo do tipo:
{
ok: true,
result: true,
description: "Webhook was set"
}
Abra novamente a conversa com o BotFather e execute o comando:
/setprivacy
Escolha o Bot e insira a opção ‘DISABLE’.
Depois, execute o comando:
/setcommands
Selecione o Bot desejado e envie a lista:
teste - Teste da Aplicação
help - Manual de como utilizar o Bot
ida - Cadastrar nova ida, atualizar ida ou ver idas existentes
volta - Cadastrar nova volta, atualizar volta ou ver idas existentes
remover - Remover ida ou volta
regras - Visualizar regras de uso do grupo
vagas - Atualiza o numero de vagas
Adicione o Bot no grupo e comece a usar
MIT
Free Software, Hell Yeah!