Enviar um vCard por SMS em Ruby com a Twilio

March 24, 2021
Escrito por
Revisado por

Enviar um vCard por SMS em Ruby com a Twilio

 

Você já enviou informações de contato de um telefone para outro? Nesse caso, você já conheceu o vCard, o formato padronizado de arquivos de contato virtuais. Esses arquivos .vcf são muito úteis para importar contatos.

Nesta publicação do blog, criaremos um vCard com a linguagem de programação Ruby e enviamos para nossos telefones com o Twilio Programmable SMS. Ao final deste tutorial, você terá um script Ruby que gera arquivos vCard e outro que envia vCards para seus contatos.

Vou gerar meu vCard e enviá-lo para meu número de telefone pessoal. Você pode me adicionar aos seus contatos usando seu número de telefone ou criar seu próprio vCard e enviá-lo para quem quiser.

Requisitos

Para seguirmos, você precisará de:

Primeiros passos

Crie uma nova pasta chamada vcard-project no computador e memorize o caminho dela, porque usaremos mais tarde.

Instalar dependências

Precisaremos das seguintes gems:

Primeiro, vamos instalar o bundler:

OSX/Linux

sudo gem install bundler

Windows

Abra um prompt de comando com direitos administrativos e execute

gem install bundler

Vamos criar um Gemfile na pasta vcard-project e preenchê-lo com

source 'https://rubygems.org'

gem 'vcardigan'
gem 'twilio-ruby'

E instalar as gems com

bundle install

[Consulte o código no GitHub]

Gerar o vCard

Na raiz da pasta do projeto, crie o arquivo vcard.rb e abra-o com o editor de texto de sua preferência.

Código de criação do vCard

No vcard.rb, adicione o código abaixo. Esse código me adicionará como contato, mas fique à vontade para alterá-lo com suas próprias informações. Há inúmeros campos que você pode adicionar a um vCard. Neste artigo, veremos apenas alguns, mas a lista completa pode ser encontrada aqui.

# vcard.rb

require "vcardigan"

vcard = VCardigan.create(:version => '4.0')
vcard.fullname 'Valeriane Venance'
vcard.tel '+33644608263', :type => 'work'
vcard.email 'vvenance@twilio.com', :type => 'work'
vcard[:item1].url 'https://www.twilio.com/blog/author/vvenance'

Esse código cria um vCard formatado na versão 4.0 (atual) com meu nome completo, número de telefone, e-mail e os tipos deles e um link extra para todas as publicações que fiz no blog da Twilio.

Gerar o arquivo .vcf

Para isso, usaremos a biblioteca padrão de arquivos da linguagem de programação Ruby. Precisamos criar um novo arquivo .vcf no computador. Vamos fazer isso agora, usando o código que escrevemos antes:

# vcard.rb

file = File.open("vcard.vcf", "w")
file.puts vcard
file.close

Isso cria um novo arquivo chamado vcard.vcf no diretório atual, grava o conteúdo do vCard nele e fecha o arquivo.

Para gerar o arquivo .vcf no computador, execute

$ bundle exec ruby vcard.rb

Se você listar os arquivos no diretório atual, verá um arquivo chamado vcard.vcf ao lado do arquivo vcard.rb.

Anote o caminho, nós precisaremos dele em seguida.

[Consulte o código no GitHub]

Apresentar o vCard

Acesse os assets no Console da Twilio. Clique no botão azul "+" e adicione o vCard do computador aos seus ativos hospedados da Twilio. Deixe o asset público para compartilhar seus contatos com o mundo!

Quando o upload for concluído, você verá um URL para esse novo ativo. Salve-o para mais tarde.

Comprar um número de telefone da Twilio

Na página "Buy a Number" (Comprar um número) do console da Twilio, procure um número com recursos de SMS.

Selecione o número de telefone de sua escolha e compre-o. Você então poderá dar um nome amigável para ele. Eu escolhi "remetente do Vcard".

Comprando um número de telefone Twilio através do console.

Anote esse número em algum lugar. No console, acesse o dashboard principal e adicione seu Account SID (SID da conta) e o Auth Token (token de autenticação) ao env. Use os nomes ACCOUNT_SID e AUTH_TOKEN para você e eu usarmos os mesmos.

Adicionar o código para enviar o vCard

Vamos criar um arquivo chamado vcard_sender.rb e preenchê-lo com:

# vcard_sender.rb

require "twilio-ruby"

account_sid = ENV["ACCOUNT_SID"]
auth_token = ENV["AUTH_TOKEN"]

@client = Twilio::REST::Client.new(account_sid, auth_token)

message = @client.messages.create(
  body: 'Ahoy, Val here ! Please find my contacts below !',
  from: '<your twilio phone number>',
  media_url: '<your twilio asset url>',
  to: ARGV[0].to_s)
  • body: pode ser alterado para qualquer texto que você quiser
  • from: deve ser o número de telefone da Twilio no seguinte formato: +15555555555
  • media_url: o link para o vCard hospedado nos ativos da Twilio
  • to: é o número de telefone para o qual você vai enviar o vCard, no formato +15555555555. Nós o obteremos na CLI da Ruby. Você verá como fazer isso na próxima seção.

[Consulte o código no GitHub]

Testar

Está tudo pronto: o código enviará um SMS para um número de telefone que especificaremos. Pode ser o seu, assim você terá meu contato! Grave o número no formato +15555555555.

Agora, falta apenas executar o código. Faça isso da seguinte maneira:

$ bundle exec ruby vcard_sender.rb <your phone number>

O destinatário receberá um SMS contendo a mensagem de texto e o link para o vCard. Ao clicar no link, o download do arquivo será feito em seu telefone. Abrir o link adicionará o novo contato à sua lista de contatos!

Tela do smartphone fazendo o download do vcard.

Se você manteve os valores que eu escrevi e adicionou seu número de telefone ao executar o comando final, então você receberá meu contato de negócios! Nesse caso, fique à vontade para enviar um SMS ou e-mail!

Até agora você aprendeu a:

  • Gerar vCards/arquivos .vcf usando Ruby
  • Hospedar ativos na Twilio
  • Enviar um SMS contendo um arquivo usando Ruby e a Twilio
  • Usar argumentos da CLI Ruby em seu código por meio do bundler!

Se você achou este tutorial legal, pode dar uma olhada em alguns outros tutoriais sobre Ruby que eu escrevi (ou clicar no link do meu contato para ver a lista completa!):

Mal posso esperar para ver o que você vai criar!

 

Este artigo foi traduzido do original "Send vCard with Ruby and Twilio". Enquanto melhoramos nossos processos de tradução, adoraríamos receber seus comentários em help@twilio.com - contribuições valiosas podem render brindes da Twilio.