[Twilio+Python+AWS Lambda] SMS に自動返信する Web アプリケーションの作成

[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 はその内容に従って送信元へ返信します。

overview

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 を設定します。

Messaging Configuration

テスト送信

メールを送信して、自動で返信がくるのを確認しました。

test-auto-reply

おわりに

Twilio に用意された Webhook の仕組みを利用すれば、非常に簡単に自動返信機能を作成できることが分かりました。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.