twilioをつかってみる


現実逃避力で進んでいます

# とりあえず動かす

Twilio Console - Runtime API Explorer Voice
https://jp.twilio.com/console/runtime/api-explorer/voice/calls/create

	explorerで実際に電話をかけて試せた

Set up your Node.js and Express Development Environment - Twilio
https://jp.twilio.com/docs/usage/tutorials/how-to-set-up-your-node-js-and-express-development-environment

	sdk
	
Twilioを使ってWeb API経由で電話をかける（前編） - Sanwa Systems Tech Blog
http://tech.sanwasystem.com/entry/2016/01/28/211457#fn-daaadb8e

	lambdaでのやりかた

［Twilio］ Twilioで電話にメッセージを送る (クライアント環境： Twilio PHP SDK) - Qiita
https://qiita.com/tcsh/items/d0449909f20916fff159

	090-...は8190...とする

AWS LambdaからTwilioを使ってエスカレーションを実現する | MMMブログ
https://blog.mmmcorp.co.jp/blog/2017/09/22/twilio_escalation_lambda/

	s3経由でのlambdaのやりかた
	
TwilioのTwiMLを使って通話を受信し、応答メッセージを返答する | レンタルサーバーのCPIスタッフブログ
https://shared-blog.kddi-web.com/webinfo/146

	電話を転送するのか、応答メッセージを返すかなどの動作をXMLベースで指定するためのマークアップ言語

TwiML™ Voice： <Play> - Twilio
https://jp.twilio.com/docs/voice/twiml/play

	任意の音声ファイルも可能っぽいな

Twilio FunctionからStudio Flowを呼び出す - Qiita
https://qiita.com/mobilebiz/items/c2c766fb9c3da9693ca0

	twilio studio も試して動いた

料金 – Twilio for KDDI Web Communications
https://twilio.kddi-web.com/price/

	音声ファイルでも文字列読み上げでも、通話時間で課金なのね

# 録音に興味	

Call Recording Reference for Twilio Programmable Voice - Twilio
https://jp.twilio.com/docs/voice/api/recording

	録音周り

Twilioで録音した3つの会話データをGoogle Cloud Speech APIでテキスト化してみた結果 – Beyond Inc.
https://blog.beyond-inc.jp/?p=176

	テキスト化

［Twilio］発信者の声を録音して再生してみる#7 ｜ DevelopersIO
https://dev.classmethod.jp/etc/twilio7/

	スクリプトからの呼び出しでの録音

「Hey Siri, デプロイおじさんに電話して」 Lambda と Twilio でワンコールデプロイをやってみた
https://blog.manabusakai.com/2015/12/one-call-deploy/

	デプロイのキックに便利、なるほど

# スプレッドシートのアドオンから呼び出す

シートからアドオンを実行して電話がかかった
途中、実行中でtwilio側でスタックしたので、タイムアウトみたいなこととかエラー制御とか知りたい

Twilio Free Sms Stock alerts with Google Spreadsheet
https://gist.github.com/vhsu/a8dfb1564045afb389620018b9c67951

	こちらを参考にする

Manifests  |  Apps Script  |  Google Developers
https://developers.google.com/apps-script/concepts/manifests

	sheetsでマニフェストに定義

Google Apps Script のアドオンの作成手順 - Qiita
https://qiita.com/takuya0206/items/06cff76e696632a2ab0f

	アドオンの書き方

Google DocsやGoogle Spreadsheetを拡張できるadd-onを作ってみる (公式ドキュメントQuickstart日本語訳 + α) - Qiita
https://qiita.com/soundTricker/items/97210c0977ee8b24ae05

	アドオンの公開、、しなくてもテストとして実行できた

Test an editor add-on  |  G Suite Add-ons  |  Google Developers
https://developers.google.com/gsuite/add-ons/how-tos/test-addons

	テストとして実行

Googleスプレッドシート Apps Scriptの3つのプログラム実行方法 | iwb.jp
https://iwb.jp/google-spreadsheet-apps-script-program-execute/

	ボタンから実行もある

Properties Service  |  Apps Script  |  Google Developers
https://developers.google.com/apps-script/guides/properties

	スクリプトプロパティで環境変数みたいなことをするみたい

Authorization Scopes  |  Apps Script  |  Google Developers
https://developers.google.com/apps-script/concepts/scopes

	fetchするのにスコープを追加

Class UrlFetchApp  |  Apps Script  |  Google Developers
https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app

	payloadでbodyが送信

Google Sheets - Custom Menu-item and HTML Sidebar (apps-script)
https://www.linkedin.com/pulse/google-sheets-custom-menu-item-html-sidebar-hilko-kriel

	サイドバーとか

Functionパッケージ - Twilio
https://jp.twilio.com/docs/runtime/functions/packages

	slackへの通知などnpmをつかって実装できる

Twilioでエラーが発生した時にSlackに通知したい - Qiita
https://qiita.com/sakazuki/items/07ce60dcab38aa016ea2

	サンプル
	
# 細かいところを四苦八苦

読み上げだと音声ファイル作成に時間がかかる印象
キャッシュも関係しそう
studioじゃなく自分で音声ファイルを管理したほうがいいかもな

PLAYで音声ファイル再生までに時間がかかる – Twilio for KDDI Web Communications
https://twilioforkwc.zendesk.com/hc/ja/articles/206427061-PLAY%E3%81%A7%E9%9F%B3%E5%A3%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%86%8D%E7%94%9F%E3%81%BE%E3%81%A7%E3%81%AB%E6%99%82%E9%96%93%E3%81%8C%E3%81%8B%E3%81%8B%E3%82%8B

音声ファイルのキャッシュについて(キャッシュ期間・キャッシュ拒否) – Twilio for KDDI Web Communications
https://twilioforkwc.zendesk.com/hc/ja/articles/206369462-%E9%9F%B3%E5%A3%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E6%9C%9F%E9%96%93-%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E6%8B%92%E5%90%A6-

TwiML™ Voice： <Play> - Twilio
https://jp.twilio.com/docs/voice/twiml/play