Closed8
アラート発生時に内容を電話通知ができるようにする
Twilio 無料トライアル制限
アカウント作成
チュートリアル参考:
Twilio Python ヘルパーライブラリー
- 任意の音声を通話させるために、TwiMLを公開する
- S3に以下のファイルを格納する。
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-jp">Twilioへようこそ!テストで送信しました。</Say>
</Response>
- 対象のS3バケットの「静的ウェブサイトホスティング」を有効にする。
注意:
性的ウェブサイトホスティングのアクセス許可
の全員(パブリックアクセス)
に読み込み権限が必要
Twilioは、デフォルトだとPOSTでXMLファイルを取得しに行くため、S3にホスティングするとエラーになる。
回避策として、コールする際に明示的にGETメソッドを利用するように記述する。
from twilio.rest import Client
account_sid = "xxxxxxxxxxxxxxxxxxxxx"
auth_token = "xxxxxxxxxxxxxxxxxxxxx"
client = Client(account_sid, auth_token)
message = client.calls.create(
to="+xxxxxxxxxxxxx",
from_="+xxxxxxxxxxxxx",
url="https://xxxxxxxxxxxxxxxxx.xml",
method="GET"
)
print(message.sid)
python上でtwiMLを作成するコード
from twilio.rest import Client
import urllib.parse
account_sid = "xxxxxxxxxxxxxxxxxxxxxxxxx"
auth_token = "xxxxxxxxxxxxxxxxxx"
message = "起きてー"
twiml = ""
twiml += '<?xml version="1.0" encoding="UTF-8"?>'
twiml += '<Response>'
twiml += f'<Say voice="alice" language="ja-JP" loop="3">{message}</Say>'
twiml += '</Response>'
encode_twiml = urllib.parse.quote(twiml)
url = f'http://twimlets.com/echo?Twiml={encode_twiml}'
client = Client(account_sid, auth_token)
message = client.calls.create(
to="+0000000000",
from_="+0000000000",
url=url,
method="GET"
)
発信後の結果statusを取得する。
call = client.calls('<sid>').fetch()
参考:https://jp.twilio.com/docs/voice/tutorials/how-to-retrieve-call-logs-python
status一覧:https://jp.twilio.com/docs/voice/api/call-resource#call-status-values
このスクラップは2023/01/07にクローズされました