S3に置いたMP3ファイルをTwilioから電話再生する(AWS Lambda Python)
Google Calendar Twilio ReminderのTwilioを使って電話をかける部分の説明です。
目次
AWS Lambdaの環境変数
変数名 | 設定値 |
---|---|
TWILIO_ACCOUNT_SID | TwilioのアカウントSID |
TWILIO_AUTH_TOKEN | Twilioのトークン |
TWILIO_FROM_NUMBER | Twilioの発信元電話番号 |
TWILIO_ACCOUNT_SID
TwilioのコンソールのACCOUN SIDです。
TWILIO_AUTH_TOKEN
TwilioのコンソールのAUTH TOKENです。
目のアイコンをクリックすると表示されます。
TWILIO_FROM_NUMBER
Twilioで購入した電話番号を設定します。
例えば、
050-1234-5678
であれば、
+815012345678
と設定します。
ソースコード説明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# coding:utf-8 from twilio.twiml.voice_response import VoiceResponse from twilio.rest import Client import logging import os import sys import traceback logger = logging.getLogger() logger.setLevel(logging.INFO) class TwilioCalendar(object): def __init__(self): self.account_sid = os.environ['TWILIO_ACCOUNT_SID'] self.auth_token = os.environ['TWILIO_AUTH_TOKEN'] self.from_number = os.environ['TWILIO_FROM_NUMBER'] def get_twiml(self,entry_url): resp = VoiceResponse() resp.play(entry_url) return str(resp) def make_call(self,to_number,twiml_url): try: client = Client(self.account_sid, self.auth_token) call = client.api.account.calls.create( to = to_number, from_= self.from_number, url = twiml_url, method= 'GET' ) return call.sid except Exception as e: logger.error(traceback.format_exc(sys.exc_info()[2])) |
get_twiml
- S3に置いたMP3ファイルのURLを引数に再生するTwimlを生成します。
- twilioライブラリのVoiceResponseクラスを使用しています。
make_call
- 引数のto_numberに電話をかけています。
- urlにS3に置いたTwimlファイルを指定しています。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS東京リージョンのAZ(apne1-az1)障害時の当ブログで発生していたことの記録
日本時間2/19 23:01頃より、東京リージョン、特定AZの1つでEC2インス …
-
-
ads.txtをS3に配置してCloudFrontで設定する
ads.txtのダウンロード ads.txt設置してねってメールが来てました。 …
-
-
AWS DeepLens開封の儀
去年(2019年)7月にamazon.co.jpでDeepLens買えますやんっ …
-
-
Application Load Balancer スティッキーセッションでどれぐらい偏るかを偶然見ました
Amazon Linux2のPHPを7.2から7.3へアップデートしましたでアッ …
-
-
ブログの画像を別アカウントのS3に移動するためにIAMロールでクロスアカウントアクセス
ずっと先延ばしにしていたのですが、このブログの画像はEC2から直接配信しています …
-
-
Amazon Route 53 Resolverを設定確認
Route 53 Resolverを設定しました。 東京リージョンのVPCをオン …
-
-
EC2のAMIとRDSのスナップショットを他のAWSアカウントに共有してブログサイトをAWSアカウント間で引っ越す
当ブログで使用しているEC2とRDSを環境の整理のため、他のAWSアカウントへ引 …
-
-
Cloud9のデフォルト設定での権限確認(AWS managed temporary credentials)
Cloud9の環境を作成した際のデフォルトアクセス権限は、環境を作成したIAMユ …
-
-
JAWS DAYS 2018 「Cost-Driven AWS クラウドアーキテクチャデザインとコスト最適化方法 – Cost-Driven AWS Cloud Architecture Design : The Lean Startup on AWS」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
-
Cloud9環境を共有した際の環境認証
Cloud9を環境を構築したIAMユーザー以外に共有したとき、その環境から実行す …