
デベロッパーエバンジェリストの池原です。昨年11月に始まった「Twilio Championsインタビュー: Doerに聞く」の4回目を2021年02月10日(水)に配信しました。
過去のインタビューはこちらになります。1回目の記事ではこの取り組みやTwilio Championsプログラムについて取り上げています。そちらもぜひご覧ください。
1回目 - Twilio Championsインタビュー: Doerに聞く - 古里武士さん
2回目 - Twilio Championsインタビュー: Doerに聞く - 八木都志郎さん
3回目 - Twilio Championsインタビュー: Doerに聞く - 川崎真素実さん
今回のゲスト: 合同会社 selfree 本間皇成さん
今回のゲストは合同会社 selfreeの本間 皇成さんにお越しいただきました。2回目に登場いただきました八木さんと一緒にTwilioJP-UGで長期間に渡り活動されていらっしゃいます。そのほかにもHerokuコミュニティ(J-HUG)や個人Blog「ボクココ」を運営されています。
インタビュー中にはご本人にお伝えできませんでしたが、実は、私がTwilioに入社して初めてお会いしたTwilio Championでもあります。そんな本間さんにお話を伺いました。
Twilioとの出会いと「ヤバさ」
本間さんは7年ほど前に当時開発していたサービスでSMSを送信するニーズがあり、それを満たすための調査の中でTwilioを使い始めました。その後、新サービスを立ち上げる中で音声通話(Programmable Vo …

デベロッパーエバンジェリストの池原です。昨年11月に始まった「Twilio Championsインタビュー: Doerに聞く」の3回目を2021年01月19日(火)に配信しました。
過去のインタビューはこちらになります。1回目の記事ではこの取り組みやTwilio Championsプログラムについて取り上げています。そちらもぜひご覧ください。
1回目 - Twilio Championsインタビュー: Doerに聞く - 古里武士さん
2回目 - Twilio Championsインタビュー: Doerに聞く - 八木都志郎さん
今回のゲスト: 株式会社キャタル 川崎真素実さん
今回のゲストは株式会社キャタルの川崎真素実さんにお越しいただきました。
ITで教室運営を効率化
川崎さんは英語塾を国内の8教室に展開するキャタルの取締役、CTOとして社内のエンジニアリングチームを率いています。エンジニアリングチームは教室の運営をITで効率化することを目標に学習管理システム(Learning Management System - LMS)を内製し、日々運用や改善に努めています。
このエンジニアリングチームについては昨年、新型コロナ感染症(COVID-19)が拡大したことを受けて完全リモートに移行されたそうです。もともと日本国外にもチームメンバーが在籍していたことや、採用の対象地域を拡大するなど、この機会に攻めに転じるための一手とお話を伺い、この状況に組織としてうまく対応していらっしゃると感じました。
また、英語塾そのものについてもこれまでの対面授業に加え、緊急事態宣言に対応して …

あけましておめでとうございます。2021年もよろしくお願いします。
本年もTwilioに加えJavaScriptやPython、GitHubの使用方法をゲームのように学べるTwilioQuestを用いたイベントを開催します。
TwilioQuestとは?
TwilioQuestは、Twilioが提供する製品の利用方法やJavaScript、PHP、PythonやGitHubについてゲームをプレイするように学べるチュートリアルです。最新バージョンではMac/Windows/Linuxそれぞれにインストールしプレイヤーの興味に合わせてミッションを選択できます。 また、随時シナリオや本体のバージョンアップが行われています。
参考記事
参加条件
- TwilioQuest 3をダウンロードし、インストール、プレイできること
実施日程
第1弾は新春チャレンジと題して2月12日(金)20:00から13日(土)20:00の期間中に取得したスコアを競います。
成績上位には豪華賞品をご用意していますので奮ってご参加ください。
2021/01/20更新:成績優秀者向けの賞品
期間中に集計された成績上位者にはつぎの賞品を進呈します。なお、賞品の発送は日本国内限定とさせていただきます。
(注)成績確定後の手配となるため、入手が困難となってしまった場合はご相談の上、代替品とさせていただく場合があります。ご了承ください。
1位〜5位共通
Twilio特製レゴセット
Twilioロゴをあしらえたレゴセットです。スマートフォ …

デベロッパーエバンジェリストの池原です。先月11月から新たにスタートした「Twilio Championsインタビュー: Doerに聞く」の2回目を2020年12月8日(火)に配信しました。
この取り組みついて、また、Twilio Championsプログラムについては第1回目の記事で取り上げています。そちらもぜひご覧ください。
Twilio Championsインタビュー: Doerに聞く - 古里武士さん
今回のゲスト: 合同会社合同屋 八木都志郎さん
今回のゲストは合同会社合同屋の八木都志郎さんにお越しいただきました。
八木さんは2013年にTwilioのイベントに参加され、そこから長年に渡ってTwilioを活用いただいています。たとえば、ExcelとTwilioを連携させアウトバウンドコールの自動化とコール結果を自動で更新するしくみを以前構築されました。また、データ通信が可能なSIMとTwilio Programmable Voiceを組み合わせ、携帯端末で通常利用する番号とは異なる番号で音声通話が可能になるクライアントも構築されています。
Twilioで社会とつながる電話
音声通話クライアントについては「あなたのiPhoneが電話になる」というキャッチフレーズでお話しいただきましたが、このコンセプトが事例として紹介いただいた「つながる電話」で花開いています。
仕事をして自立をする、家を借りる場合には連絡先番号が必要になりますが、さまざまな事情から「通話可能な電話」を持てない方が増えています。東京アンブレラ基金さまが提供する「つながる電話」はこのような方々を支 …

Twilio FunctionsはNode.jsで動作するサーバレス実行環境です。この環境にはTwilio Node ヘルパーライブラリーがあらかじめて組み込まれているためすぐ利用できます。また、オートスケール機能やセキュリティ機能などプロダクション向けのサーバレスアプリケーションを簡単かつ迅速に構築できます。
Twilio FunctionsでGETとPOSTを判断する方法
このTwilio FunctionsはGET
、POST
、OPTIONS
メソッドに対応しています。ただし、Functionsで呼び出されるハンドラーメソッドではリクエストヘッダにアクセスできないため、どのメソッドか判断できません。そのため、GETとPOSTでハンドルするFunctionを明示的に別にするという運用が考えられます。ただし、外部APIによっては1つのエンドポイントで両方のメソッドに対応しなければいけない場合があります。たとえばTwitch Webhookは1つのエンドポイントに対してイベントの購読確認(Subscription Verify)と通知(Notification)を、それぞれGET、POSTで行います。そのため、1つのエンドポイントで両方に対応しなければなりません。
将来的には改善されることを期待しますが、現時点ではリクエストで渡されるパラメータから判断し、それぞれに対応した処理を行う方法が考えられます。
Twitch Webhookの場合
Subscription Verify (GET
)の場合は、hub.challenge
とい …

デベロッパーエバンジェリストの池原です。今年の4月から定期的にTwitchでストリーミングをしています。ストリーミングではTwilioQuestや、自分自身が興味のあるプロダクトやサービスを試している日々です。
そのストリーミングチャンネルで2020年11月11日(水)にTwilio Championsのお一人である古里武士(ふるさと たけし)さんをお招きしお話を伺いました。ここに至るまでの背景も含め、今回のインタビューを振り返ります。
Twilioと開発者
Twilioと開発者は切っても切れない関係です。我々はSMS、音声通話、Email、ビデオなど多種多様なコミュニケーションチャネルを利用できるAPIを提供しています。APIの使用量に応じて課金される「Pay as you go(従量課金)」モデルを採用しているため、開発者に利用いただくことがビジネスの拡大にとって重要な要素になります。
そのため私が所属するDeveloper Networkでは開発者向けドキュメントの拡充に加えTwilioQuestの提供やハンズオン、ミートアップの支援など、開発者リレーション活動を展開しています。自分自身も日本やアジア・パシフィック地域において開発者のみなさんをご支援できる活動は何かということを日々考えるようにしています。
Twilio Championsプログラム
このようにTwilioは開発者と密接な関係を築いてきました。そして、この開発者リレーションの一環として世界各地で開発者コミュニティを牽引し、Twilioの認知向上をご支援いただいている皆様をTwilio Champio …

こんにちは!猛暑が続いていますが、お元気でしょうか?私は夏の暑さとCOVID-19感染者数の増加により、すっかり引きこもっている毎日です。
さて、先日7月4日にTwilioJP-UG岡山さん主催によるTwilioQuest Nightがオンラインで開催されました。
takeshi.furusato.blog - TwilioJP-UG Okayama #4 TwilioQuest Night を開催しました。
今回はこのイベントをもとにTwilio Japanとして2020年8月28日(金)〜 29日(土)にかけて獲得経験値を競う「TwilioQuest 24時間チャレンジ」を開催します。
TwilioQuestとは
TwilioQuestは、Twilioが提供する製品の利用方法やJavaScript、PHP、Python、GitHubについてゲームをプレイするように学べるチュートリアルです。最新バージョンではMac/Windows/Linuxそれぞれにインストールでき、自分自身のペースでミッションに挑戦できます。
参考記事 - Game + Tutorial = TwilioQuest3のはじめかた
24時間チャレンジについて
今回のTwilioQuest 24時間チャレンジは制限時間内にどれだけ経験値を獲得できるかを競うイベントとなります。ご自身が興味のあるミッションを好きな時間にプレイできるため、これまで使ったことのないプロダクトや言語などに挑戦することができます。
参加者および高得点者には豪華賞品をご用意しています!例えば...
- TwilioQuest Tシャ …

Twilio Studioは電話着信や、SMSの受信に対する処理(フロー)を設定できるビジュアルデザインツールです。このツールを用いることでプログラミングの知識を必要とせずにフローの設定を行えます。
多くの場合、電話着信・SMS受信に用いられますが、別のシステム(Webなど)で入力した予約の確認や、宅配便の再配達の案内など、決まったテンプレートをもとに外部に発信を行う場合にも利用することができます。今回はTwilio Studioで設定したフローを用いて宅配の再配達依頼の確認メッセージを発信する方法をご紹介します。
前提条件
- Twilioアカウントを持っていること(無料トライアルのサインアップ方法)
- SMSを利用できる電話番号を購入していること
また、今回作成するサンプルはあらかじめ下記の情報をユーザーが提供していることを想定しています。
- 連絡可能(SMSが受信可能)な電話番号
- 再配達の日時(yyyy/MM/dd hh:mm:ss)
Twilio Studioフローのインポート
TwilioコンソールからStudioダッシュボードを開きます。これまでにStudioフローを作成したことがない場合は下記のスクリーンショットに表示されている赤色の Create a flow
ボタンをクリックし、新しいFlowの作成を開始します。
フローをこれまでに作成している場合は、既存のフローの一覧画面に表示されている新規追加ボタン(赤丸に白十字が表記されているもの)をクリックします。
Flowの名前は Confirmation Flow
としました。
用意されているテンプレー …

以前の記事で、在宅勤務に伴う電話問い合わせの一時休止を解決する方法として、Twilio Studioを利用し個人電話に転送する方法を紹介しました。
今回は別の記事で紹介したGoogleスプレッドシートのシフトデータをもとに転送先となる個人をNode.jsで変更する方法を紹介します。
前提条件
- Twilioアカウントを持っていること(無料トライアルのサインアップ方法)
- 期間限定の問い合わせ番号となる電話番号を購入していること
(日本の番号を取得する場合) - こちらの記事に則りフローを作成、公開済みであること
- こちらの記事に則りGoogleスプレッドシートからデータを取得するNode.jsアプリケーションを作成済みであること
Node.jsプロジェクトの作成とパッケージのインストール
以前の記事に沿って作成したNode.jsアプリケーションのフォルダーに移動し、twilio-nodeパッケージをインストールします。
npm i twilio
次に.envファイルにTwilioへの接続情報やStudioフローのIDを保存する環境変数を追加します。
SPREADSHEET_ID=
STAFF_WORKSHEET_ID=
SHIFT_WORKSHEET_ID=
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_STUDIO_FLOW_SID=
Twilio Studio REST API v2を使ったフローの取得と更新
今回利用するTwilio Studio REST API v2は4 …

Google Cloud Platform(GCP)にはGoogle Sheets APIが提供されており、このAPIを利用してGoogleスプレッドシートのデータにアクセスすることができます。今回はGoogleスプレッドシートのスタッフ、シフトデータをNode.jsで読み込む方法を紹介します。
前提条件
- Google Cloud Platform (GCP)のアカウントの作成、ならびに有効な支払い方法が登録されていること
- Googleスプレッドシートを利用できること
シフトを管理するGoogleスプレッドシート
こちらにスプレッドシートのサンプルを用意しました。ファイルメニューからこのスプレッドシートを自分のGoogleアカウントで利用できるようにコピーします。スプレッドシートの中身をみてみましょう。Shiftシートには日ごとの担当者を4名まで設定しています。
また、Staffシートには担当者ごとの連絡先電話番号がE.164フォーマットで登録されています。
GCPでSheets APIを有効化
はじめてGCPを利用する場合は、コンソールからプロジェクトを作成します。
例ではプロジェクト名を google-sheet-studio
としましたが、任意のプロジェクト名で構いません。
作成ボタンをクリックするとリソースの管理画面に戻り、プロジェクトの作成が開始されます。数十秒〜数分程度で作成が完了します。
次にAPI ライブラリを開きます。
先ほど作成したプロジェクトが選択されていることを確認します。
Google Sheets APIを検索し、プロジェクトに追加し …