Descubra as funcionalidades e vantagens do Rocket Chat

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:

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:

CURSOSCONSULTORIA

Anterior Guia Completo: Gerenciamento de Disco e Partições Linux
Próxima Desvendando a Lógica de Programação: Como ela impacta nosso dia a dia

About author

Caique Portela
Caique Portela 8 posts

Caique Portela é formado em Análise e Desenvolvimento de Sistemas na FATEC e técnico em Redes de Computadores pelo CEAP. Possui mais de 7 anos de experiência com TI, sendo pelo menos 3 anos atuando diretamente como desenvolvedor. Já trabalhou como suporte técnico e consultor de infraestrutura Linux, hoje atua como desenvolvimento e treinamento na 4Linux.

View all posts by this author →

Você pode gostar também

Big Data

Acelere seus algoritmos de Machine Learning com CUDA no Linux

Se você deseja trabalhar com algoritmos de Machine Learning, provavelmente precisará usar processamento paralelo para acelerar os resultados dos seus algoritmos. Muitos frameworks como por exemplo, o TensorFlow, já possuem

Desenvolvimento

Descubra as novidades e melhorias do Symfony 4, o framework PHP

O versão 4 do Symfony, foi lançada em 30 de novembro de 2017. Com uma nova filosofia e menor número de dependências, a nova versão está muito melhor que as

Cloud

Descubra como o Skaffold pode otimizar seu trabalho com Kubernetes

Olá pessoal! A ideia para este post surgiu quando me deparei com o problema, que todos que trabalham ou vão trabalhar com Kubernetes enfrentam: a necessidade de a cada simples