Olá pessoal,
Bom dia!
Neste post vou demonstrar como fazer uma integração do banco de dados com o Ryver e enviar mensagens utilizando CLR (C#), que é o principal concorrente do Slack, no qual já demonstrei como fazer essa mesma integração no post SQL Server – Como fazer uma integração do banco de dados com o Slack e enviar mensagens utilizando o CLR (C#).
Caso você não conheça ou não saiba utilizar o CLR no SQL Server, descubra como acessando o post Introdução ao SQL CLR (Common Language Runtime) no SQL Server.
O que é o Ryver ?
Para quem não conhece, o Ryver é um dos comunicadores corporativos mais famosos e utilizados em todo o mundo, principal concorrente do Slack e tem a proposta de substituir a comunicação via e-mail por fórums privados e públicos (dentro do time) focados em determinadas equipes e/ou assuntos. Você pode criar grupos públicos, onde toda sua equipe pode interagir e colaborar e grupos privados para cada setor, onde somente quem está no grupo pode visualizar as mensagens.
O Ryver permite que você responda e-mails pela própria ferramenta, envio e compartilhamento de arquivos (sem limite de armazenamento), envio de mensagens privadas e muito mais, tudo de graça (não há versões premium, propagandas e nenhum recurso pago).
Onde e como posso usar o Ryver na minha empresa?
Esse recurso é especialmente útil para criar equipes na sua empresa e gerar alertas e monitoramentos por equipe, onde cada equipe recebe apenas os alertas referentes às suas atividades. Além disso, você pode utilizar os grupos abertos para enviar informativos e notificações que interessam para a empresa toda. Tudo isso, sem custo algum e você pode receber por e-mail, visualizar na Web e no seu smartphone.
Uma outra forma legal de se utilizar o Ryver, é enviar acompanhamento de metas de vendas para o setor de comercial, de forma que os gerentes regionais e locais possam acompanhar a performance da equipe de vendas em tempo real, sem ter que ficar consultando e abrindo relatórios, onde quer que eles estejam, mesmo fora da empresa.
Caso sua empresa adote o Ryver, o setor de RH pode utilizar o serviço para enviar mensagens e informativos para os colaboradores. Enviar mensagens de natal, uma mensagem especial no aniversário do colaborador, etc.
Enfim, a vantagem do Ryver é que ele pode ser enviado de várias formas diferentes (E-mail, Web, Smartphone), onde quer que você esteja, dentro ou fora da empresa e representa uma grande revolução na forma em que as pessoas interagem com as informações.
Como adicionar usuários ao Ryver
O primeiro passo para criar a integração, é criar sua conta no Ryver, acessando este link. Uma vez criada, você receberá um e-mail para logar na sua conta.
Após criar a sua conta, o próximo passo é criar um usuário que a sua aplicação ou ferramenta irá utilizar para realizar o envio das mensagens. Esse usuário deve estar presente em todos os grupos, caso contrário, não será possível realizar o envio das mensagens para esse grupo.
Para incluir novos usuários, clique no seu nome, no canto inferior esquerdo e selecione a opção “Admin Settings”.
Na tela que irá abrir, clique no botão “Invite User” e será aberta uma nova janela, onde você irá digitar os e-mails das pessoas que você deseja convidar para a sua conta do Ryver. Recomendo que você adicione um usuário exclusivamente para o envio das mensagens, mas caso você queira, pode utilizar o seu próprio usuário mesmo.
Para criar alguns exemplos, vou criar um fórum livre e alguns times privados, conforme abaixo:
Como integrar o banco de dados ao Ryver
Uma vez que você já criou sua conta no Ryver e já cadastrou o usuário que você irá utilizar para enviar as mensagens para as equipes, vamos à parte interessante: Criar o código .NET (C#) que irá realizar a integração do banco de dados SQL Server com a API do Ryver.
Como pré-requisito para utilizar essa procedure, você precisará criar a classe Retorno, disponível no post SQL Server – Como enviar avisos e mensagens de erro para o banco pelo CLR (C#) para utilizar o método Retorno.Erro e assim, enviar mensagens de erro, caso ocorram. Você também pode optar por comentar o código e remover as chamadas para esse método (e comentar também o using Bibliotecas.Model), mas não aconselho, pois você não saberá quando ocorreu algum erro na sua chamada à SP de envio de mensagens para o Ryver.
Como identificar o nome do usuário:
Como identificar o ID do fórum ou sala privada:
Como adicionar um usuário em um grupo:
Código-fonte da Stored Procedure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
using System; using System.Data.SqlTypes; using System.IO; using System.Net; using System.Text; using Bibliotecas.Model; public partial class StoredProcedures { [Microsoft.SqlServer.Server.SqlProcedure] public static void stpEnvia_Mensagem_Ryver(SqlString Ds_Tipo, SqlInt64 Nr_Time, SqlString Ds_Mensagem) { const string urlRyver = "nome_do_seu_time"; const string usuario = "usuario_ryver"; const string senha = "senha_ryver"; var dsTipo = Ds_Tipo.Value.ToLower(); if (dsTipo != "forums" && dsTipo != "workrooms") Retorno.Erro("O valor do parâmetro 'Ds_Tipo' não está entre as opções possíveis (workrooms / forums)"); try { var dsScript = "{\"body\": \"" + Ds_Mensagem.Value + "\"}"; var url = $"https://{urlRyver}.ryver.com/api/1/odata.svc/{dsTipo}({Nr_Time.Value})/Chat.PostMessage()"; var request = (HttpWebRequest) WebRequest.Create(url); request.Method = "POST"; var svcCredentials = Convert.ToBase64String(Encoding.UTF8.GetBytes(usuario + ":" + senha)); request.Headers.Add("Authorization", "Basic " + svcCredentials); request.UserAgent = "curl/7.45.0"; request.ContentType = "application/json"; request.Accept = "application/json"; var buffer = Encoding.GetEncoding("UTF-8").GetBytes(dsScript); using (var reqstr = request.GetRequestStream()) { reqstr.Write(buffer, 0, buffer.Length); using (var response = request.GetResponse()) { using (var dataStream = response.GetResponseStream()) { if (dataStream == null) return; using (var reader = new StreamReader(dataStream)) { var responseFromServer = reader.ReadToEnd(); Retorno.Mensagem(responseFromServer); } } } } } catch (Exception e) { Retorno.Erro("Erro : " + e.Message); } } }; |
Exemplos de uso para grupo aberto
1 2 3 4 5 |
-- Enviando mensagem para o grupo aberto "Grupo Livre" EXEC CLR.dbo.stpEnvia_Mensagem_Ryver @Ds_Tipo = N'forums', -- nvarchar(max) @Nr_Time = 1094440, -- bigint @Ds_Mensagem = N'Teste de Mensagem para o fórum \"Forum Livre\"' -- nvarchar(max) |
Exemplos de uso para grupo privado
1 2 3 4 5 |
-- Enviando mensagem para o grupo privado "TI" EXEC CLR.dbo.stpEnvia_Mensagem_Ryver @Ds_Tipo = N'workrooms', -- nvarchar(max) @Nr_Time = 1094441, -- bigint @Ds_Mensagem = N'Teste de Mensagem para o grupo privado \"TI\"' -- nvarchar(max) |
And that's it, folks!
Espero que tenham gostado desse post.
Um abraço e até a próxima.
sql server clr .net dotnet framework c# csharp integration como criar integração banco de dados database como enviar mensagens how to send messages notifications notificações grupo privada dm Ryver
sql server clr .net dotnet framework c# csharp integration como criar integração banco de dados database como enviar mensagens how to send messages notifications notificações grupo privada dm Ryver
Ryver sobrevive de que ?
Thiago,
Bom dia.
O Ryver sobrevive através do Ryver Task Manager, que é um produto pago e que possui integração com o Ryver Team Communication.
https://ryver.com/ryver-vs-slack/