https://a.storyblok.com/f/270183/240851/8d47944740/programmable-sms-and-voice.png

Introdução às comunicações programáveis por SMS e Voice

Publicado em May 18, 2021

Tempo de leitura: 2 minutos

Recentemente, realizamos um webinar com David Leary da Intuit Developer para abordar os conceitos básicos do uso das APIs de SMS e Voice API da Nexmo. Se você está planejando participar do próximo evento da Intuit Small Business Hack e quer ter uma ideia do que é possível fazer, ou se estiver apenas interessado em obter uma visão geral rápida das comunicações programáveis por SMS e Voice com o Nexmo, aqui estão as seções do webinar que abordam diretamente o envio e o recebimento de SMS, bem como como fazer e receber chamadas telefônicas. Todos os exemplos vêm acompanhados de trechos de código e links para leituras mais aprofundadas.

Como enviar um SMS

Esta seção do webinar aborda como enviar um SMS de saída. Ela aborda o uso de remetentes alfanuméricos e o uso de um número adquirido da Nexmo como from número.

const Nexmo = require('nexmo');

const nexmo = new Nexmo({
apiKey: API_KEY,
apiSecret: API_SECRET,
}, {debug: true});

nexmo.message.sendSms(
FROM_NUMBER,
TO_NUMBER,
'Hello from @leggetter', (error, result) => {
if(error) {
console.error(error);
}
else {
console.log(result);
}
});

Para saber mais sobre como enviar um SMS, confira nossa postagem sobre envio de SMS com Node.JS, o guia da SMS API e referência da SMS API. Ao enviar SMS, você também pode querer saber se a mensagem foi entregue. Para isso, você pode se cadastrar para receber um Confirmação de Entrega de SMS. Há também uma postagem no blog sobre como receber um comprovante de entrega de SMS com o Node.JS.

Como receber um SMS

Nesta parte do webinar, abordamos como receber um webhook de entrada contendo as informações do SMS recebido.

const Nexmo = require('nexmo');

const app = require('express')();
app.set('port', (process.env.PORT || 5000));
app.use(require('body-parser').urlencoded({ extended: false }));

app.listen(app.get('port'), () => {
console.log('Example app listening on port', app.get('port'));
});

app.post('/sms', (request, response) => {
console.log('Received message text "%s"', request.body.text);

response.sendStatus(200);
});

Você pode encontrar mais informações sobre como receber um SMS em nossa postagem sobre receber um SMS com o Node.JS, no guia da SMS API e referência da SMS API.

Como fazer uma ligação telefônica

Veja a seguir como fazer uma chamada telefônica de saída usando a Voice API Nexmo.

const Nexmo = require('nexmo');

const nexmo = new Nexmo({
apiKey: API_KEY,
apiSecret: API_SECRET,
applicationId: APPLICATION_ID,
privateKey: PRIVATE_KEY
});

nexmo.calls.create({
to: [{
type: 'phone',
number: TO_NUMBER
}],
from: {
type: 'phone',
number: FROM_NUMBER
},
answer_url: ['https://nexmo-community.github.io/ncco-examples/conference.json']
}, (err, res) => {
if(err) { console.error(err); }
else { console.log(res); }
});

Temos uma postagem no blog que aborda como fazer uma chamada telefônica de saída com o Node.JS; há um guia da Voice API de chamadas telefônicas de saída e, é claro, uma referência da Voice API. Além disso, dê uma olhada na referência do NCCO para obter informações sobre como controlar conversas e chamadas do Nexmo, conforme utilizado no answer_url exemplo acima.

Receber uma chamada telefônica

Por fim, veja a seguir como receber e controlar uma chamada telefônica recebida. Isso apresenta o conceito de Objetos de Controle de Conversação da Nexmo (NCCOs).

const Nexmo = require('nexmo');

const nexmo = new Nexmo({
apiKey: API_KEY,
apiSecret: API_SECRET,
applicationId: APPLICATION_ID,
privateKey: PRIVATE_KEY
});

const app = require('express')();
const bodyParser = require('body-parser');
app.set('port', (process.env.PORT || 5000));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

app.listen(app.get('port'), () => {
console.log('Example app listening on port', app.get('port'));
});

app.get('/answer', (request, response) => {
console.log('Incoming call from "%s"', request.query.from);

// record - All or part of a Call No
// conversation - A conference.
// connect - To a connectable endpoint such as a phone number
// talk - Send synthesized speech to a call
// stream - Send audio files to a call
var ncco = [
// {
// action: 'talk',
// text: 'hello from me',
// loop: 3,
// bargeIn: true
// },
{
action: 'stream',
streamUrl: ['http://www.ladyofthecake.com/rdmp3/theme.mp3'],
loop: 3,
bargeIn: true
},
{
action: 'input',
eventUrl: ['https://nexmo.ngrok.io/event']
}
];

response.json(ncco);
});

app.post('/event', (request, response) => {
console.log('Received event', request.body);

response.sendStatus(200);
});

Mais informações sobre como receber uma chamada telefônica são abordadas em nossa postagem sobre receber uma chamada telefônica com o Node.JS, no guia da API de chamadas de voz recebidas e na Referência da Voice API. O exemplo acima também menciona record, talk, stream e outras ações do NCCO. Portanto, dê uma olhada na referência do NCCO para obter informações sobre como controlar conversas e chamadas do Nexmo.

Mais novidades incríveis em comunicações programáveis!

Há muito mais informações sobre as APIs da Nexmo na documentação que não foram mencionadas acima. Por exemplo, a Verify API para autenticação de dois fatores (2FA) e senhas de uso único, e Number Insight , para consultar informações sobre números de telefone. Também temos uma seleção de tutoriais de comunicação programável que abordam a criação de casos de uso específicos de comunicação, como comunicações de voz privadas, atendimento ao cliente por SMS, resposta de voz interativae muito mais, utilizando as APIs da Nexmo.

Se você for ao Small Business Hack, boa sorte e nos vemos lá. Se você só deu uma passada por aqui para saber mais sobre comunicações programáveis, esperamos que isso seja útil para você. De qualquer forma, fique à vontade para participar da Slack da Comunidade Nexmo se tiver alguma dúvida.

Compartilhar:

https://a.storyblok.com/f/270183/400x400/73e68604be/phil-leggetter.jpg
Phil Leggetter

Phil is Head of Developer Relations at Hookdeck, an asynchronous messaging platform, and a proud Vonage alumni.