Twilio SMSとPythonで誕生日リマインダーを作成する

Twilio SMSとPythonで誕生日リマインダーを作成する

こんにちは、チャールです。
誕生日の願いを自動化して、お祝いを見逃さないようにしますか? それを可能にするのがTwilioです!

この実践的なブログ記事では、TwilioのMessaging APIを活用した簡単な誕生日リマインダーシステムの作り方をご紹介いたします。

ステップ1:

  • Twilioアカウントにログインします。
  • 「Account SID」と「Auth Token」を確認してください - これらはTwilio APIにアクセスするための認証キーとなります。
    Screenshot 2024-11-20 at 13.28.00
  • Twilioをアクセスするとシークレット変数にアクセスするために、twilioとload_dotenvをインストールしてください。
pip install twilio load_dotenv

ステップ2:

  • .envファイルを作成し、アカウントSID、トークン、Twilio電話番号を保存してください。
TWILIO_ACCOUNT_SID=your_account_sid
TWILIO_AUTH_TOKEN=your_auth_token
TWILIO_PHONE_NUMBER=your_twilio_phone_number

ステップ3:

  • main.pyファイルを作成し、以下のプログラムを書いてください。
import os
from twilio.rest import Client
from dotenv import load_dotenv
from datetime import datetime

load_dotenv()

TWILIO_ACCOUNT_SID = os.environ["TWILIO_ACCOUNT_SID"]
TWILIO_AUTH_TOKEN = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
TWILIO_NUMBER = os.environ["TWILIO_NUMBER"]

birthdays = [
    {"name": "Adam", "month": 3, "day": 21, "number": "電話番号"},
    {"name": "Charu", "month": 11, "day": 3, "number": "電話番号"},
]

today = datetime.now()

for person in birthdays:
    if person["month"] == today.month and person["day"] == today.day:
        message = client.messages.create(
        body=f"Happy Birthday, {person['name']}!",
        from_=TWILIO_NUMBER,
        to=person['number'],
        )
        print(f"Birthday message sent to {person['name']}! Message SID: {message.sid}")

説明:

  • twilio.restとdatetimeから必要なライブラリをインポートします。
  • Account SID、Auth Token、Twilio電話番号のプレースホルダーを実際の値に置き換えてください。
  • 誕生日情報を保存するためのbirthdaysリストを作成します。
  • コードは本日の日付を取得し、birthdaysリストを順に確認します。
  • 誕生日が本日の日付と一致した場合、Twilio APIを使用してお祝いメッセージを送信します。

ステップ4:

Pythonファイルを保存し、ターミナルから実行してください:

python main.py

まとめ

おめでとうございます!Twilioを使用した独自の誕生日リマインダーシステムの構築が完了しました。これで、大切な誕生日のお祝いメッセージはプログラムにお任せして、安心してお過ごしいただけます!
誕生日を直接コードに記述する代わりに、データベースに保存することも可能です。タスクスケジューラーを使用して、このスクリプトを毎日実行することができます。さらに、お誕生日メッセージをカスタマイズすることも可能です。

読んでくれてありがとうございます!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.