Giter Site home page Giter Site logo

rogeriopradoj / tuto-botman-laravel-starter Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 1.0 226 KB

Tutorial para criar meu primeiro Bot no Telegram (#chatbot)!

PHP 93.37% JavaScript 1.24% ApacheConf 0.60% Vue 0.61% HTML 4.18%
chatbot bot php laravel botman telegram

tuto-botman-laravel-starter's Introduction

tuto-botman-laravel-starter

Para fazer o tutorial, o Bot criado foi apenas no Telegram: é o @TiNegociosBot. No entanto, a biblioteca BotMan permite usar o mesmo código para criar a estrutura de Bots para várias plataformas.

Lista de arquivos efetivamente alterados

Requisitos

Como usar

Registrar Bot

Primeiro, é necessário criar o Bot lá no Telegram (mais info aqui: https://core.telegram.org/bots/api):

  1. /newbot
  2. Nome do seu bot (qualquer nome Bot)
  3. Username do seu bot (QualquerNomeBot)

Depois de completar os passos acima, você recebe um ACCESS TOKEN, parecido com esse aqui: 123456789:Adfkj9jjdf9j9jdf9jRkjerkjMijijJUd11. Copie seu ACCESS TOKEN, pois ele será usado mais na frente.

Aplicação

Agora, é hora de mexer na aplicação:

  1. Baixe o projeto (ou via git clone https://github.com/rogeriopradoj/tuto-botman-laravel-starter, ou download do zip).

  2. Edite o arquivo .env` para conectar com Telegram (é aqui que você vai usar aquele ACCESS TOKEN lá em cima).

  3. Edite as configurações TINEGOCIOS_ também no arquivo .env.

  4. Depois disso é só rodar o servidor web e servir a aplicação numa url pública (o jeito mais fácil na minha máquina foi rodando valet link e depois valet share). No meu caso, a URL ficou parecida com essa daqui: https://a1234567.ngrok.io/

Se você tentar acesar a URL no seu navegador, deve aparecer uma página de erro NotFoundHttpException in RouteCollection.php line 161:. Se isso acontecer esta tudo certo. É porque a rota que vamos usar não é a rota raiz, e sim a rota /botman/.

Registrando a url da aplicação no Bot

Por fim, é necessário cadastrar a URL do webhook de seu Bot, conforme instruções do Telegram.

Você tem várias formas de fazer isso, a mais fácil:

Pronto, agora, acesse essa URL final no seu navegador mesmo, você deve receber a seguinte resposta que está tudo ok:

{"ok":true,"result":true,"description":"Webhook was set"}

Colocando a aplicação em um hosting real PaaS

A plataforma que usei foi Google Cloud App Engine Flexible Environment seguindo as orientações daqui (outra opção seria via Heroku).

Aproveitei também para usar o Docker para rodar os comandos Google Cloud SDK em vez de fazer a instalação na minha própria máquina.

Seguem passos:

  1. Criar o projeto Google Cloud em https://console.cloud.google.com.

  2. Habilitar o Billing no projeto em https://console.cloud.google.com/billing.

  3. Baixar a imagem Docker do SDK: docker pull google/cloud-sdk

  4. Inicializar o ambiente do SDK na minha máquina e vinculei com o projeto Google Cloud: docker run -t -i --name gcloud-config google/cloud-sdk gcloud init

  5. Fazer o deploy da aplicação: docker run --rm -ti -v `pwd`:/apps -w="/apps" --volumes-from gcloud-config google/cloud-sdk gcloud app deploy

  6. Registrar a URL do projeto gerada pelo Google Cloud no Telegram:https://api.telegram.org/bot<ACCESS TOKEN>/setWebhook?url=<URL DO PROJETO>/botman/ (exemplo: https://api.telegram.org/bot123456789:Adfkj9jjdf9j9jdf9jRkjerkjMijijJUd11/setWebhook?url=https://url-do-projeto.appspot.com/botman/).

Próximas fases

Colocar NLP (natural language processing): https://rasa.ai/, https://wit.ai/, https://api.ai/, https://www.luis.ai/, https://www.ibm.com/watson/ etc.

Fontes

tuto-botman-laravel-starter's People

Contributors

rogeriopradoj avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

hey-bydy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.