Passer au contenu principal
You are viewing the French site, but your language preference is set to English. Switch to English site →
Functions

Des créations plus rapides avec Serverless Functions

Functions est un environnement sans serveur sur Twilio, où vous pouvez rapidement créer des microservices orientés événements, les intégrer à des endpoints tiers et développer des flux Twilio Studio avec une logique personnalisée.

illo-hero-functions

Du concept à la première édition
en quelques étapes seulement

Code JSON connecté au code JavaScript qui mènera à différentes fonctions, telles que la messagerie ou les appels, puis à l'utilisateur.

Développez des microservices orientés événements avec Node.js

Créez des applications Twilio évolutives, de niveau production et orientées événements à l'aide de Node.js. Innovez sans vous soucier de la stabilité. Itérez rapidement. Utilisez une logique personnalisée pour les applications Studio et les systèmes SVI (Serveur Vocal Interactif).

Le code Node.js est connecté à une base de données qui intègre différents services tiers.

Intégration avec les endpoints tiers

Procédez à une intégration avec n'importe quel système tiers en transformant et en filtrant vos données à l'aide de la puissance de Node.js et de l'écosystème npm. Créez facilement des requêtes vers une API externe et configurez des webhooks pour acquérir des données à partir de produits Twilio ou de systèmes externes.

La connexion Studio à Functions permet d'accéder à différentes actions, telles que la messagerie et les appels.

Votre code sur Twilio

Donnez vie à vos idées rapidement, que vous développiez des API puissantes, des intégrations complexes ou que vous ajoutiez une logique personnalisée à votre système SVI (Serveur Vocal Interactif). Laissez Twilio Functions gérer les charges opérationnelles pour accélérer la mise sur le marché.

Le code Twilio contribue améliore les performances des organisations dans le monde entier.

Mise à l'échelle automatique et tarification transparente

Notre solution sans serveur sur Twilio s'adapte automatiquement à une demande élevée et comprend un modèle commercial de paiement à l'utilisation afin de réduire les coûts pour votre entreprise.

Cas d'utilisation de Functions

Déploiement avec Functions en moins
de 5 minutes

Send an SMS from 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">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">&#39;+15558675310&#39;</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">&#39;+15017122661&#39;</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">&#39;Hi there!&#39;</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>

                

Envoyer un SMS à partir de votre numéro de téléphone Twilio

Envoyez un SMS à partir de votre numéro de téléphone Twilio. Avec quelques lignes de code, votre téléphone affiche un SMS Twilio à l'aide de Twilio Functions.

Envoyer un SMS

Send OTP from 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">&#39;+15558675310&#39;</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">&#39;sms&#39;</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">&#39;en&#39;</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">&#39;Verfication OTP sent&#39;</span><span class="p">);</span><span class="w"></span>
</span><span class="code-line"><span class="p">};</span><span class="w"></span>
</span></div>

                

Envoyer un code d'accès à usage unique (OTP)

Intégrez Functions aux services Twilio existants, comme une expérience de code d'accès à usage unique (OTP) par SMS, via WhatsApp, commande vocale ou e‑mail.

Envoyer un OTP

Log Incoming SMS in Google Sheets
  • 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">&#39;googleapis&#39;</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">&#39;fs&#39;</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">&#39;/credentials.json&#39;</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">&#39;https://www.googleapis.com/auth/spreadsheets&#39;</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">&#39;v4&#39;</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">&quot;&#39;&quot;</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">&quot;&#39;&quot;</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">&#39;USER_ENTERED&#39;</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">&#39;The SMS was successfully saved.&#39;</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>

                

Consigner les messages texte entrants dans Google Sheets

Ajoutez une nouvelle ligne aux documents Google Sheets lorsque votre numéro de téléphone Twilio reçoit un message texte pour suivre le contenu du message, l'expéditeur et l'heure de réception.

Consigner les messages entrants

messaging-customer-quote-portrait.png

« Inutile d'ajouter des commentaires aux lignes de code pour expliquer le rôle d'une fonction. Le code Twilio est vraiment clair et facile à configurer. »

Nate Grieb, Chef de produit

Essayez Serverless et Twilio Functions

Mettez votre application en service grâce à Functions.