![[Twilio+Python+AWS Lambda] SMS に自動返信する Web アプリケーションの作成](https://images.ctfassets.net/ct0aopd36mqt/wp-thumbnail-3f316c20ff5f4f46d1a005e2ad976882/c71162912c717bb0ca7c9b4196a40df5/twilio.png)
[Twilio+Python+AWS Lambda] SMS に自動返信する Web アプリケーションの作成
Twilio を使用して SMS に自動で返信する Web アプリケーションを Python+AWS Lambda で作成する手順について紹介します。
参考ページ: https://www.twilio.com/docs/messaging/tutorials/how-to-receive-and-reply/python
作業環境
バージョン
OS: Windows 11 (23H2)
Python: 3.11.9
twilio-python: 9.4.5
動作概要
Twilio は SMS からメッセージを受け取ると、 Webhook に登録された Web アプリケーションに対して HTTP リクエストを送信します。 HTTP リクエストを受け取った Web アプリケーションは、 TwiML 形式でレスポンスを行います。 Twilio はその内容に従って送信元へ返信します。
TwiML とは
Twilio 向けのマークアップ言語です。詳しくは こちら 。今回は次の内容で返信するアプリケーションを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Message>これは自動返信メッセージです</Message>
</Response>
Web アプリケーションの作成
今回は AWS Lambda を使用してアプリケーションを作成しました。
lambda_function.py
from twilio.twiml.messaging_response import MessagingResponse
def lambda_handler(event, context):
"""SMS に自動返信する"""
# TwiML の返信を作成
resp = MessagingResponse()
# 返信にメッセージを追加
resp.message("これは自動返信メッセージです")
return {
"statusCode": 200,
"headers": {
"Content-Type": "text/html"
},
"body": str(resp)
}
Twilio に Webhook を設定
コンソール番号のページ にアクセスし、任意の番号の Messaging Configuration > A message comes in に、 Webhook として Web アプリケーションの URL を設定します。
テスト送信
メールを送信して、自動で返信がくるのを確認しました。
おわりに
Twilio に用意された Webhook の仕組みを利用すれば、非常に簡単に自動返信機能を作成できることが分かりました。