Como utilizar a API do Pushbullet para enviar torpedos SMS no C#, PHP, Java ou pelo SQL Server (com CLR)

Olá pessoal,
Boa tarde!!

Neste post, quero lhes mostrar uma novidade que consegui desenvolver essa semana e que achei muito bacana, que é o envio de torpedos SMS a partir de praticamente qualquer linguagem de programação atual (C#, VB.NET, Java, PHP, etc) e inclusive, pelo próprio banco de dados SQL Server utilizando o SQL CLR (também pode ser feito utilizando a xp_cmdshell).

Isso é especialmente útil para criar alertar e monitoramentos em ambientes de produção, onde em caso de qualquer problema grave, você possa ser notificado, onde quer que você esteja, até se estiver sem sinal do 3G ou Wi-FI na hora.

Pode-se utilizar isso para enviar um SMS para o setor comercial de uma empresa quando um cliente enviar uma solicitação de orçamento. Se você tem uma loja virtual, pode enviar torpedos para seus clientes com as alterações de status de um pedido, por exemplo. As possibilidades são muitas!

O que é o Pushbullet?

pushbullet-640x401

O Pushbullet é um aplicativo simples com um objetivo principal: transferir coisas do seu smartphone para o computador e vice-versa. É possível enviar arquivos e links para o celular, e receber notificações de qualquer smartphone associado a sua conta no PC, como por exemplo, quando um amigo faz check-in no Swarm, quando alguém está te ligando ou quando a sua agenda te lembra sobre algum compromisso.

Você também pode enviar e receber SMS e responder mensagens do WhatsApp, Facebook Messager, Hangouts e outros sem tocar no smartphone. É fácil: quando alguém enviar uma mensagem pelo WhatsApp, vai aparecer uma notificação interativa no seu computador. Clique em Responder, digite sua mensagem e clique em Enviar.

O Pushbullet também tem alguns truques bem bacanas, como sincronizar a área de transferência entre dispositivos, para que você possa recortar um texto no computador e colar no smartphone

Como funciona essa solução? Como o torpedo é enviado?

O funcionando básico dessa funcionalidade é a seguinte:

  • Através de uma linguagem de programação à sua escolha, você irá enviar a requisição para a API do Pushbullet, solicitando o envio do SMS e informando o número do destinatário e a mensagem
  • O servidor do Pushbullet irá receber essa requisição e direcionar para o aplicativo associado ao dispositivo solicitado na sua requisição
  • O aplicativo do seu celular selecionado irá receber a requisição do servidor e utilizar o recurso de envio de SMS do seu celular
  • Torpedo SMS enviado com sucesso para o destinatário!

Quais os requisitos para que essa API funcione?

Como o envio é feito realmente pelo seu celular, as mensagens enviadas pela API ficam disponíveis na tela de SMS do seu smartphone. Além disso, você precisará ter créditos para realizar o envio do SMS, assim como qualquer envio de SMS normal, ou ter um pacote junto à sua operadora móvel que permita o envio desses torpedos.

Nos meus testes, eu utilizei o meu celular, onde tenho um plano controle da Vivo de 1 GB e torpedos ilimitados para qualquer operadora, em qualquer DDD, então esse plano me atende perfeitamente. Tem até alguns pacotes exclusivos de SMS que permitem envios de torpedos ilimitados por um custo ainda menor.

Como vocês devem ter notado, para que esse recurso funcione, o aparelho celular que será o responsável por enviar os torpedos precisará estar sempre ligado e com acesso à internet.

Qual o custo dessa solução? Existe algum limite de envio?

Um ponto importante que devo comentar, é que a conta Free do Pushbullet só permite o envio de 500 requisições (pushes) por mês. Para remover esse limite e transformá-lo em envios ilimitados, você precisará atualizar sua conta do Pushbullet para a versão PRO (https://www.pushbullet.com/pro), com um custo de $ 4,99 (dólares) ao mês ou $ 3,33 (dólares) ao mês, caso você opte pelo plano anual. Acho o valor bem justo e acessível.

Acredito que é uma solução bem interessante e com um custo ZERO, para quem precisa de poucos envios por mês e já tenha um pacote de dados com suporte a torpedos ilimitados em seu celular.

Mesmo que você tenha uma necessidade de enviar muitos torpedos SMS e precise adquirir um pacote de dados com torpedos ilimitados + 1 GB de internet 4G (40 reais por mês) e atualizar a sua conta do Pushbullet para a versão PRO (10 reais por mês), o custo mensal por essa solução é bem pequeno (52 reais por mês) e muito inferior às soluções empresariais que as operadoras e outras empresas disponibilizam no mercado (e com limite de quantidade de torpedos enviados).

Fiz uma pesquisa rápida na internet e vi que algumas empresas cobram 100 reais por mês para ter direito a enviar 1.000 torpedos/mês e algumas cobram R$ 0,16 por torpedo (500 torpedos por mês = 80 reais).

Criando sua conta e adicionando os dispositivos

Para realizar essa atividade, vou utilizar a API do Pushbullet, que é bem documentada de fácil utilização (https://docs.pushbullet.com/) de utilizar para acessar todos esses recursos utilizando sua linguagem de programação favorita.

O primeiro passo é criar a sua conta no site do aplicativo (https://www.pushbullet.com/). Ele suporta integração com Facebook e Google, permitindo que o serviço leia seus dados de um desses dois serviços e você economize tempo digitando os dados cadastrais.

Uma vez cadastrado, adicione os seus dispositivos móveis baixando e instalando o aplicativo do Pushbullet neles. Uma vez instalado e logado no Pushbullet pelo app no seu celular, ele será adicionado à sua lista de dispositivos da sua conta.

Recuperando o Access Token, ID do Usuário e ID do Dispositivo

Uma vez que você criou sua conta e adicionou os dispositivos, vá na tela de Preferências (Settings – https://www.pushbullet.com/#settings) e na sessão “Access Tokens” clique no botão “Create Access Tokens”

pushbullet-api-send-sms-to-smartphone-php-csharp-java-sql-server-clr

Após clicar no botão, um código será mostrado na sua tela. Anote esse código, pois ele será o código de acesso para autenticar as requisições que iremos enviar.

Agora que você já tem a sua conta no Pushbullet e já tem o seu Access Token, precisamos recuperar o seu ID de usuário e o ID do seu dispositivo celular que será utilizado para enviar os torpedos.

Para recuperar essas informações, indico o download do binário do cURL, disponível neste link (Windows) ou neste link (Qualquer SO) ou a utilização da extensão Postman, do Google Chrome (mais prático e melhor visualização dos resultados)

Uma vez baixado e instalado (no Windows, copie o executável para o diretório C:\Windows), vamos utilizar o cURL para recuperar o ID da nossa conta, utilizando o comando abaixo:

pushbullet-api-send-sms-to-smartphone-php-csharp-java-sql-server-clr-4

ou realizando a mesma requisição com o Postman:

pushbullet-api-send-sms-to-smartphone-php-csharp-java-sql-server-clr-3

Com isso, anote o código do iden retornado. Esse é o seu ID de usuário, uma vez que você pode ter vários usuários associados a sua conta.

Agora vamos recuperar o ID do nosso dispositivo celular, que fará o envio do SMS, utilizando o comando abaixo no cURL:

ou pelo Postman:
pushbullet-api-send-sms-to-smartphone-php-csharp-java-sql-server-clr-5

Anote o código iden retornado do seu dispositivo. Esse é o ID do dispositivo.

Desenvolvendo a solução de envio SMS com a API do Pushbullet

Agora que já temos os ID’s necessários para realizar o envio do torpedo, podemos iniciar a nossa rotina de envio de SMS.

Solução escrita na linguagem de programação C#, para ser utilizada no SQL Server pelo CLR

Exemplo:
pushbullet-api-send-sms-to-smartphone-php-csharp-java-sql-server-clr-6

Código-fonte:

Neste script, utilizei a classe Retorno, que tem como objetivo enviar mensagens de informação e mensagens de erro para o banco de dados através do CLR. O seu código-fonte está disponível no post SQL Server – Como enviar avisos e mensagens de erro para o banco pelo CLR (C#).

Solução escrita na linguagem de programação Web PHP

Exemplo:
pushbullet-api-send-sms-to-smartphone-php-csharp-java-sql-server-clr-7

Código-fonte:

Solução genérica utilizando o binário cURL.exe
Depois de demonstrar exemplos utilizando duas linguagens de programação diferentes, vou demonstrar como usar o próprio cURL.exe, instalado no seu PC, para realizar o envio do SMS. Você pode optar pela sua linguagem de programação favorita para enviar a sua requisição, conforme fiz nos exemplos acima, ou pode também simplesmente executar o binário cURL.exe a partir da sua linguagem de programação:

O comando padrão para enviar SMS pelo cURL é esse:

push_message.json

No comando cURL utilizei um arquivo externo (push_message.json) para armazenar as informações da solicitação que vou enviar. Você pode fazer com que a sua linguagem de programação crie esse arquivo em tempo de execução, utilize o caminho do arquivo recém criado no parâmetro –data-binary e apague-o após a execução.

Acredito que essa solução através do cURL é bem genérica e pode ser utilizada por qualquer linguagem de programação que te permita executar arquivos binários no servidor, seja C#, PHP, Java, Ruby, etc.

É isso aí, pessoal!
Espero que tenham gostado desse post.

Qualquer dúvida, deixem aqui nos comentários!

sql sql server enviar torpedo send sms php java c# clr .net csharp ruby curl command line code script snipplet script

sql sql server enviar torpedo send sms php java c# clr .net csharp ruby curl command line code script snipplet script

SQL, sql server, sql server 2008, sql server 2008 R2, Oracle, Oracle Database, Oracle 11g, Oracle 10g, Oracle 12c, MySQL, Firebird, Consultoria, Consultor, Programador, Programação. Desenvolvedor, Analista de Sistemas, DBA, Criação de website, Criação de Sistema Web, Vitória, Vila Velha, Guarapari, Espírito Santo, ES, Consultoria SQL em VItória, Treinamento, Curso, Prestação de serviço, prestar serviço, freelancer, freela, banco de dados, consultoria em banco de dados, consultor de banco de dados

5 comentários em “Como utilizar a API do Pushbullet para enviar torpedos SMS no C#, PHP, Java ou pelo SQL Server (com CLR)

  1. Boa tarde, Dirceu!

    Estava com uma necessidade semelhante e esse seu artigo foi realmente um achado!
    Não sei se você passou por algum problema, mas eu estou com uma situação estranha: em minha máquina, num banco local, deu tudo certo; porém ao publicar a mesma solução de CLR em outros 2 servidores diferentes, quando executo a procedure ela fica rodando sem parar e só envia a mensagem quando cancelo a sua execução; e se tendo executá-la por um aplicativo em C# no Visual Studio ela dá erro de timeout e não manda nada.
    Sabe o que poderia estar causando isso? Sem querer abusar…

  2. Bom dia estou tentando criar a classe Retorno como informando” SQL Server – Como enviar avisos e mensagens de erro para o banco pelo CLR (C#). ” porem esta dando um erro em

    using (var Conexao = new SqlConnection(Servidor.Localhost))

    poderia me auxiliar

Deixe uma resposta