Crie mais rapidamente com o Functions sem servidor
O Functions é um ambiente sem servidor na Twilio no qual você pode criar rapidamente microsserviços orientados por eventos, integrar com endpoints de terceiros e estender os fluxos do Twilio Studio com lógica personalizada.

Do conceito à primeira edição
em menos etapas

Crie microsserviços orientados por eventos com Node.js
Crie aplicativos Twilio orientados por evento, com qualidade de produção e escaláveis usando Node.js. Inove sem se preocupar com a estabilidade. Itere rapidamente. Use lógica personalizada para aplicativos do Studio e sistemas URA.

Integre com endpoints de terceiros
Integre com qualquer sistema de terceiros transformando e filtrando seus dados usando o poder do Node.js e o ecossistema npm. Faça solicitações de API externas com facilidade e configure webhooks para incluir dados de produtos Twilio ou sistemas externos.

Seu código na Twilio
Dê vida às ideias rapidamente, seja criando APIs poderosas, integrações complexas ou adicionando lógica personalizada às suas URAs. Deixe o Twilio Functions lidar com a sobrecarga operacional para que você possa chegar ao mercado mais rapidamente.

Dimensionamento automático e preços transparentes
O Serverless na Twilio é dimensionado automaticamente de zero a picos de demanda e apresenta um modelo de negócios com pagamento por utilização para minimizar os custos de sua organização.
Casos de uso do Functions
Implemente com o Functions em menos
de 5 minutos
- Node.js
<div class="highlight"><span class="code-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">handler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">context</span><span class="p">,</span><span class="w"> </span><span class="nx">event</span><span class="p">,</span><span class="w"> </span><span class="nx">callback</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">context</span><span class="p">.</span><span class="nx">getTwilioClient</span><span class="p">();</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">message</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">client</span><span class="p">.</span><span class="nx">messages</span><span class="p">.</span><span class="nx">create</span><span class="p">({</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">to</span><span class="o">:</span><span class="w"> </span><span class="s1">'+15558675310'</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="kr">from</span><span class="o">:</span><span class="w"> </span><span class="s1">'+15017122661'</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">body</span><span class="o">:</span><span class="w"> </span><span class="s1">'Hi there!'</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">callback</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="nx">message</span><span class="p">.</span><span class="nx">sid</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="p">};</span><span class="w"></span>
</span></div>
Envie um SMS de um número de telefone Twilio
Envie um SMS de um número de telefone Twilio. Com apenas algumas linhas de código, você verá em seu telefone um Twilio SMS usando o Twilio Functions.
- Node.js
<div class="highlight"><span class="code-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">handler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">context</span><span class="p">,</span><span class="w"> </span><span class="nx">event</span><span class="p">,</span><span class="w"> </span><span class="nx">callback</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">context</span><span class="p">.</span><span class="nx">getTwilioClient</span><span class="p">();</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">service</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">context</span><span class="p">.</span><span class="nx">VERIFY_SERVICE_SID</span><span class="p">;</span><span class="w"></span>
</span><span class="code-line">
</span><span class="code-line"><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">verification</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">client</span><span class="p">.</span><span class="nx">verify</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="p">.</span><span class="nx">services</span><span class="p">(</span><span class="nx">service</span><span class="p">)</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="p">.</span><span class="nx">verifications</span><span class="p">.</span><span class="nx">create</span><span class="p">({</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">to</span><span class="o">:</span><span class="w"> </span><span class="s1">'+15558675310'</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">channel</span><span class="o">:</span><span class="w"> </span><span class="s1">'sms'</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">locale</span><span class="o">:</span><span class="w"> </span><span class="s1">'en'</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">callback</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="s1">'Verfication OTP sent'</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="p">};</span><span class="w"></span>
</span></div>
Envie uma verificação de senha de uso único (OTP)
Integre o Functions com serviços Twilio existentes, como uma experiência de senha de uso único (OTP) que usa SMS, WhatsApp, voice ou e‑mail.
- Node.js
<div class="highlight"><span class="code-line"><span class="kd">const</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nx">google</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">require</span><span class="p">(</span><span class="s1">'googleapis'</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="kd">const</span><span class="w"> </span><span class="nx">fs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">require</span><span class="p">(</span><span class="s1">'fs'</span><span class="p">).</span><span class="nx">promises</span><span class="p">;</span><span class="w"></span>
</span><span class="code-line">
</span><span class="code-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">handler</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">async</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">context</span><span class="p">,</span><span class="w"> </span><span class="nx">event</span><span class="p">,</span><span class="w"> </span><span class="nx">callback</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">twiml</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">Twilio</span><span class="p">.</span><span class="nx">twiml</span><span class="p">.</span><span class="nx">MessagingResponse</span><span class="p">();</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">authJson</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">fs</span><span class="p">.</span><span class="nx">readFile</span><span class="p">(</span><span class="nx">Runtime</span><span class="p">.</span><span class="nx">getAssets</span><span class="p">()[</span><span class="s1">'/credentials.json'</span><span class="p">].</span><span class="nx">path</span><span class="p">)</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="p">);</span><span class="w"></span>
</span><span class="code-line">
</span><span class="code-line"><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">auth</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">google</span><span class="p">.</span><span class="nx">auth</span><span class="p">.</span><span class="nx">JWT</span><span class="p">({</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">email</span><span class="o">:</span><span class="w"> </span><span class="nx">authJson</span><span class="p">.</span><span class="nx">client_email</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">key</span><span class="o">:</span><span class="w"> </span><span class="nx">authJson</span><span class="p">.</span><span class="nx">private_key</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">scopes</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s1">'https://www.googleapis.com/auth/spreadsheets'</span><span class="p">],</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">sheets</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">google</span><span class="p">.</span><span class="nx">sheets</span><span class="p">({</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">version</span><span class="o">:</span><span class="w"> </span><span class="s1">'v4'</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">auth</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span class="code-line">
</span><span class="code-line"><span class="w"> </span><span class="k">await</span><span class="w"> </span><span class="nx">sheets</span><span class="p">.</span><span class="nx">spreadsheets</span><span class="p">.</span><span class="nx">values</span><span class="p">.</span><span class="nx">append</span><span class="p">({</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">spreadsheetId</span><span class="o">:</span><span class="w"> </span><span class="nx">context</span><span class="p">.</span><span class="nx">DOCUMENT_ID</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">range</span><span class="o">:</span><span class="w"> </span><span class="s2">"'"</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">context</span><span class="p">.</span><span class="nx">SHEET_NAME</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s2">"'"</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">valueInputOption</span><span class="o">:</span><span class="w"> </span><span class="s1">'USER_ENTERED'</span><span class="p">,</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">requestBody</span><span class="o">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">values</span><span class="o">:</span><span class="w"> </span><span class="p">[[</span><span class="nx">event</span><span class="p">.</span><span class="nx">SmsSid</span><span class="p">,</span><span class="w"> </span><span class="nx">event</span><span class="p">.</span><span class="nx">From</span><span class="p">,</span><span class="w"> </span><span class="nx">event</span><span class="p">.</span><span class="nx">Body</span><span class="p">]],</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="p">},</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span class="code-line">
</span><span class="code-line"><span class="w"> </span><span class="nx">twiml</span><span class="p">.</span><span class="nx">message</span><span class="p">(</span><span class="s1">'The SMS was successfully saved.'</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="w"> </span><span class="nx">callback</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="nx">twiml</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="p">};</span><span class="w"></span>
</span></div>
Registre mensagens de texto recebidas no Google Sheets
Adicione uma nova linha aos documentos do Google Sheets quando o seu número de telefone Twilio receber uma mensagem de texto para rastrear o conteúdo da mensagem, o remetente e o horário de recebimento.

"Você não precisa comentar as linhas de código para explicar o que uma função está fazendo. O código Twilio é bastante claro e facilmente configurado."
Experimente o Serverless e o Twilio Functions
Coloque seu aplicativo para funcionar com o Functions.