L30Bola / BotCaronas

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Caronas Bot

Sobre

Bot para gerenciar caronas usado no Telegram.

Table of Contents

Table of Contents generated with DocToc

Funcionalidades:

  • Adicionar/Remover caronas com horário, número de vagas e origm/destino
  • Exibir lista com as caronas de ida e volta

Version

1.2.0

Tecnologias

Todo o código foi escrito em PHP integrando com a Bot API do Telegram.

Desenvolvimento

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.

Devs

Getting Started

Tutorial de como utilizar esse código para implementar um novo bot no Telegram com configurações próprias.

Criação de um Bot

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/

Criação do Banco de Dados

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.

Configuração do Banco de Dados

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
);

Criação de aplicação

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.

Configuração das variáveis de ambiente

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)

Deploy

No menu superior, selecione Deploy. Selecione GitHub como Deployment Method e conecte ao repositório. Selecione o branch master e faça o deploy.

Configuração de webhooks

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"
}

Configuração de comandos do Bot

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

Comece a usar

Adicione o Bot no grupo e comece a usar

License

MIT

Free Software, Hell Yeah!

About


Languages

Language:PHP 100.0%