Descubra as funcionalidades e vantagens do Rocket Chat
O Rocket Chat é uma solução open source de comunicação. Nele está a sua disposição funcionalidades que vão muito além de um simples chat. Com ele você pode realizar vídeo conferência, adicionar convidados, ter confirmação de leitura, realizar atendimento a clientes através de live chat e muito mais. Um dos recursos mais interessantes é a possibilidade de integração com diversas plataformas e ferramentas de terceiros. Além disso, você pode criar suas próprias integrações e adicionar funcionalidades ao seu Rocket.
Rocket.Chat App
Isso é algo que não vejo muito sendo falado, nem há destaque merecido a esse recurso no site, talvez porque os usuários não vejam tanta vantagem nisso. Mas a real é que quando você entender melhor o que é e o que se pode fazer, surgirão ideias para resolver problemas do dia a dia.
Com este recurso, você pode desenvolver aplicativos (ou chame de plugin se preferir) para o Rocket, com muitas possibilidades que geram funcionalidades interessantes.
Se quiser, você pode dar uma olhadinha nos aplicativos públicos no marketplace do rocket. Mas por agora, vamos entender melhor como começar a desenvolver nosso próprio aplicativo.
O que podemos fazer com os aplicativos?
Eu disse que podemos fazer muitas coisas com os aplicativos e realizar nossas próprias integrações. Mas na real, até onde podemos ir?
Oficialmente, é listado algumas possibilidades:
- Ouvir eventos de mensagens;
- Ouvir eventos de salas;
- Enviar mensagens para usuários.
- Adicionar comandos;
- Adicionar endpoints (API Rest).
Até ai podemos imaginar muitas coisas que podem ser feitas. Mas vou adicionar aqui mais algumas funcionalidades que estão disponíveis nativamente:
- Configurações: O seu aplicativo pode ter configurações e serem ajustadas em tempo real via interface;
- Realizar requisições HTTP;
- Armazenar dados no banco do Rocket;
- Acessar configurações do Rocket;
- Armazenar logs;
- Manipular mensagens;
- Enviar alertas para os usuários;
- Agendar tarefas (semelhante a um cron);
- Criar recursos visuais (em modals e mensagens).
Tudo isso não se limita apenas aos chats internos do rocket, mas também para livechats utilizando o Omnichannel.
E lembre-se: Você está programando em node. O que isso significa? Além de tudo que é fornecido para personalização do Rocket, você pode adicionar os seus pacotes utilizando o npm e ir muito além.
Entendendo o ambiente
O Rocket.Chat é desenvolvido em Node.js, logo os aplicativos também devem ser desenvolvidos na mesma linguagem. Não há na documentação nada explícito em relação a versão, apena o código deve ser escrito em TypeScript. Além disso, é fornecido duas ferramentas para nos auxiliar nesses desenvolvimento: Engine e CLI.
A Engine basicamente é um framework responsável por disponibilizar os recursos para o desenvolvimento da aplicação, fornecendo uma API para interagirmos com o Rocket (https://github.com/RocketChat/Rocket.Chat.Apps-engine).
A CLI fornece alguns comandos para facilitar o desenvolvimento do aplicativo. Por meio dela conseguimos criar um aplicativo, realizar deploy, publicar no marketplace e até mesmo gerar código (https://github.com/RocketChat/Rocket.Chat.Apps-cli).
Vale a pena lembrar, que assim como o Rocket é open source, as ferramentas de desenvolvimento também são. É sempre interessante dar uma olhada no código fonte de ambos, e quem sabe fazer algumas sugestões e até mesmo adicionar funcionalidades.
Preparando o ambiente: Rocket
Antes de iniciar o desenvolvimento, é necessário algo importante: Ter um Rocket rodando, não é mesmo?! Para não perder tempo instalando as dependências e baixando o código, utilizo o Docker para auxiliar com isso.
Criei um docker-compose de exemplo para que isso fique mais fácil ainda. Você pode visualizar ele aqui. Ele já sobe o ambiente com tudo que precisa, e já cria um usuário administrador (Login rocket e senha PZxs7wsHWEJLP98z). Basta fazer login e realizar a configuração inicial.
Com o Rocket rodando, precisamos realizar uma configuração. Por padrão, não vem habilitado o recurso de aplicativos, então vamos ajustar isso!
Na tela de administração, dentro das configurações, no menu Geral procure pela categoria Apps. Dentro dela, basta marcar a opção Ativar o App Framework e salvar.
Uma outra configuração interessante deve estar logo abaixo, com o nome Habilitar modo de desenvolvimento. Por padrão os aplicativos só podem ser instalados a partir do marketplace do Rocket. Ao marcar essa opção poderemos realizar instalação manual via interface web e/ou pela CLI. É interessante deixar isso marcada para facilitar os testes.
Com isso temos o Rocket prontinho para receber o nosso aplicativo.
Preparando o ambiente: Desenvolvedor
Como eu já citei, para começar a desenvolver é necessário que tenha instalado o Node, de preferência a mesma versão que é utilizada pelo Rocket onde pretende utilizar o aplicativo. É possível consultar a versão no Node utilizada pela tela de administração, na aba Informações.
Confirme a versão do Node na máquina onde vai desenvolver utilizando o comando:
node --version
Se tudo estiver certo, vai ser retornado a versão do Node instalado. Agora, é necessário instalar a CLI. Para isso basta executar o seguinte comando:
npm install -g @rocket.chat/apps-cli
Com isso você já tem o que é necessário para começar a desenvolver! E claro, você precisa de uma IDE para escrever o código. Até onde sei, não existe um plugin/extensão para IDE que possa facilitar o desenvolvimento, então você pode utilizar qualquer uma que te ajude com o código em Node. Eu costumo utilizar o VS Code.
Acessando a documentação
Existe uma documentação para desenvolvedores que pode te dar uma boa base inicial sobre como iniciar um projeto e fornece alguns exemplos de uso mais comum e simples. É uma ótima ideia começar lendo ela, visto que são poucos exemplos mas que fornecem uma boa base de possibilidades.
Nela você encontra explicações sobre o ciclo de vida de uma aplicativo, as interfaces de eventos e o agendador de tarefas. E também há alguns exemplos de aplicativos, como:
- Comandos com argumentos;
- Extensão de mensagens;
- Realizar requisições HTTP;
- Armazenar dados no banco;
- Registrar novos endpoints;
Quando quiser consultar todos os recursos disponíveis, será necessário acessar a página: Rocket.Chat Apps TypeScript Definition. Nele há definição de todas as interfaces disponíveis para uso na sua aplicação.
E isso é um ponto importante quando falamos de aplicações para o Rocket: para qualquer ação de integração com o Rocket, você criará classes que implementem a interface responsável pela funcionalidade que deseja. São poucas as classes concretas fornecidas pela Engine.
O ponto de entrada da sua aplicação deverá ser uma classe que herda a classe App. Ela vai te fornecer métodos de eventos do ciclo de vida do aplicativo, um método definir as configurações do aplicativo e alguns métodos para acessar informações do aplicativo.
A partir desse ponto, você pode começar a desenvolver como deseja. Podendo implementar as interfaces para ações que deseja nessa classe inicial, ou criar classes especializadas para cada ação desejada e instância-las no ponto de entrada.
E agora?
No próximo post vamos botar a mão na massa e desenvolver um aplicativo do zero, passo a passo. Assim entenderemos melhor como funciona tudo isso que foi explicado.
Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:
About author
Você pode gostar também
Guia definitivo para aprender PHP em 2018: passo a passo para iniciantes
No ano passado, em 2017, não foram poucas as vezes em que fui abordada por pessoas, em sua maioria mulheres, que me perguntaram: Como faço pra aprender PHP? Em início
Desvendando a Revolução do Desenvolvimento Front-End na Web
A internet já foi palco de muitas revoluções, sempre impulsionadas por um mercado havido em atender usuários cada vez mais conectados. Mas foi nos últimos anos que a web explodiu
Run Locally, Deploy Globally: Uma Introdução ao LocalStack
Transforme sua maneira de desenvolver na AWS com o LocalStack! Aprenda a testar localmente e implantar globalmente, reduzindo custos e acelerando seu projeto. Descubra o segredo dos desenvolvedores eficientes! “Run