2021.06.07
まとめ
ブログ
2021.06.07
こんにちは、Twilioマーケチームのkatsu.tです。
本記事では、サーバーサイドで利用するTwilioのヘルパーライブラリをCloud Functions for Firebase(Node.js)に組み込む方法についてご紹介いたします。
まずTwilioヘルパーライブラリについてご紹介いたします。
Twilioヘルパーライブラリには、サーバーサイドで利用される「サーバーサイドヘルパーライブラリ」と、JavaScriptやiOS、Androidなどのクライアントサイドで利用する「SDK」の2種類があります。
サーバーサイドヘルパーライブラリは、TwiMLを作成できるビルダーメソッドや、Twilioの各種APIをメソッドとして利用できる機能を提供しています。
クライアントサイドで利用するSDKは、クライアントとTwilioを接続して音声や動画をやり取りするために利用します。
それぞれのSDKを利用することにより、簡単にアプリケーション構築を行うことができ、すぐにTwilioの恩恵を受けられます。
Twilioヘルパーライブラリは、それぞれ下記言語に対応しています。
詳細については各ドキュメントをご覧ください。
本記事ではCloud Functions for FirebaseでNode.jsを利用した際の、サーバーサイドヘルパーライブラリの組み込み方についてご紹介いたします。
まずfirebaseコマンドを利用できるよう、npmを利用してインストールします。
※node/npmをインストールされていない方は、こちらを参照してインストールしてください。
npm install -g firebase-tools
firebaseコマンドのインストールが完了したら、続いてプロジェクトを作成します。
// フォルダ作成 mkdir twilio-sample // フォルダを移動 cd twilio-sample // プロジェクト作成 firebase init functions
コマンドを実行したら、表示された内容に従って選択。設定を行います。
※上下キーで選択し、スペースで確定。Enter/Returnで次の項目へ移動します。
続いて、本題であるTwilioヘルパーライブラリをインストールします。
// functionsフォルダへ移動 cd functions // twilioヘルパーライブラリをインストール npm install twilio
最後にTwilioヘルパーライブラリを読み込みます。
functions/index.jsを開いて下記コードを追加してください。
const twilio = require('twilio');
以上でヘルパーライブラリの導入は完了です!
今回はヘルパーライブラリを利用して、TwiMLを作って返却させてみたいと思います。
導入したヘルパーライブラリを利用して、TwiMLを返却するfunctionsを作ってみましょう。
今回は一番初歩的な「こんにちは、twilio」と音声を流すTwiMLを返却するfunctionsを作ってみます。
firebase/index.jsを下記コードに置き換えてください。
const functions = require('firebase-functions'); const twilio = require('twilio'); exports.helloTwilio = functions.https.onRequest((request, response) => { let twiml = new twilio.twiml.VoiceResponse(); twiml.say({ voice: 'alice', language: 'ja-JP' }, 'こんにちは、Twilio'); response.set("Content-Type", "application/xml; charset=utf8").send(twiml.toString()); });
実装できたら、ちゃんと動くかテストします。
下記コマンドを実行して、作成したfunctionsをデプロイします。
firebase deploy --only functions:helloTwilio
デプロイが完了したら、firebaseコンソールにログインしてURLを確認しましょう。
確認したURLをブラウザでアクセスした結果が下記の通りになれば成功です。
まとめ
Twilioでは各言語のヘルパーライブラリを提供しています。ヘルパーライブラリを使うことにより、素早くTwilioの恩恵を受けることが可能です。
またfirebaseなど別のプラットフォームと組み合わせることにより、さらに強力なプレゼンスを発揮することができます。いろいろ試してみてくださいね!
前職でiOS、Androidのネイティブアプリケーション開発、AngularやLaravelを用いたウェブアプリケーション開発に従事。KDDIウェブコミュニケーションズではTwilioの最新情報の発信やTwilioを用いた地域課題解決を担当。 個人では、Google Developer Group Tokyoのオーガナイザーを務める。
Twitter:https://twitter.com/chiino58
2022.05.18
2022.04.18
2022.07.01
2022.10.11
2022.09.20
2022.08.23
2022.05.24
2022.11.02
2022.10.11
2022.09.20
2022.08.23