ダイヤルSMSの入電通知

ダイヤルSMSは、契約した電話番号に興味のある人が電話をかけてきたら、情報をSMSで24時間自動で送信するサービス。入電対応も不要なので、人件費もかからず、コスパ◎。

ダイヤルSMSに入電があったら、通知が欲しい…という時には『着信URL』を上手に使いましょう。この着信URLは、少し開発の知識が必要です。初心者の私が設定してみましたので、ぜひお試しください。

URLを準備するのですから、Webサーバーが必要になります。

①サーバー準備→URLを設定

今回、私はRenderというサーバーを使いました。こちらは現在英語のみの対応となっているようですが、料金表では『Hobby』プランが無料となっており、今回のプロジェクトのサポートに十分です。

使い方はこちらが参考になるかもしれません。3. Webhokの設定にて Render.com のサービスのURLをコピーしたら、それを、EZSMSのダイヤルSMS設定画面にて、着信URLとして入力してください。

これで、EZSMSのダイヤルSMSに入電があると、この着信URLへ着信の情報がPOST送信される設定が完了しました。

②サーバー側での準備

着信用URLで受け取った情報を、お好みに処理する設定をしておく必要があります。これには、サーバー側にスクリプトを置くのですが、PHPやPython、Node.js、Rubyなどのバックエンド言語を使います。

私は今回、着信を受けたらメールで通知してもらえるように設定することにしました。

メール送信者として、Gメールを使います。また、Gメールアカウントのアプリパスワードが必要になります。これは、普段ログインに使うパスワードとは違います。詳しくはこちらを参照してください。このページからアプリパスワードの作成も行うことができます。

通知を受信したいメールアドレスも準備してください。

Gメールアドレス、アプリパスワード、そして受信用のメールアドレスが準備できたら、スクリプトを書きます。私の例では、pythonを使いました。

from flask import Flask, request, render_template import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import os import json import pytz app = Flask(__name__) app.secret_key = os.environ.get('SECRET_KEY', 'your_secret_key') from datetime import datetime def format_timestamp(timestamp): try: dt_utc = datetime.utcfromtimestamp(float(timestamp)) dt_jst = dt_utc.replace(tzinfo=pytz.utc).astimezone(pytz.timezone("Asia/Tokyo")) return dt_jst.strftime('%Y-%m-%d %H:%M:%S') except Exception as e: print(f"⚠️ タイムスタンプ変換エラー: {e}") return "Unknown" # 📧 メール送信関数 def send_email(caller, recipient, call_time): sender_email = "your-gmail-address@gmail.com" # 送信元のGmailアドレス receiver_email = "your-email-to-receive-notification@email.com" # 受信先のメールアドレス password = "gmail-app-password" # Gmailの「アプリパスワード」を使う subject = "📞 新しいWebhook通知" body = f""" 新しい通話データを受信しました! 📌 Caller: {caller} 📌 Recipient: {recipient} 📌 Call Time: {call_time} """ msg = MIMEMultipart() msg["From"] = sender_email msg["To"] = receiver_email msg["Subject"] = subject msg.attach(MIMEText(body, "plain")) try: with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server: server.login(sender_email, password) server.sendmail(sender_email, receiver_email, msg.as_string()) print("📧 メール送信成功!") except Exception as e: print(f"⚠️ メール送信エラー: {e}") @app.route('/webhook', methods=['POST']) def webhook(): # 📌 受信したデータの形式をログに記録 print("📌 受信したデータ (リクエストボディ):", request.data) try: if request.is_json: data = request.get_json() else: data = request.form.to_dict() # form データを辞書に変換 print("📌 パースしたデータ:", data) # データ構造を確認 # JSON形式の場合、ネストされているかチェック if "results" in data: parsed_data = json.loads(data["results"]) caller = parsed_data.get("caller", "Unknown") recipient = parsed_data.get("recipient", "Unknown") call_time = parsed_data.get("call_time", "Unknown") else: caller = data.get("caller", "Unknown") recipient = data.get("recipient", "Unknown") call_time = data.get("call_time", "Unknown") except Exception as e: print(f"⚠️ データ取得エラー: {e}") return "Invalid Data Format", 400 # 🔹 タイムスタンプを変換 formatted_time = format_timestamp(call_time) print("===== 📞 Webhook Data Received! =====") print(f"Caller: {caller}") print(f"Recipient: {recipient}") print(f"Call Time: {formatted_time}") # 🔹 変換後の時間を表示 print("======================================") # 📧 メール送信(変換後の時間を使う) send_email(caller, recipient, formatted_time) return "Data received!", 200 @app.route('/display') def display_data(): return render_template( 'display.html', caller=request.args.get('caller', 'No Data'), recipient=request.args.get('recipient', 'No Data'), call_time=request.args.get('call_time', 'No Data') ) import os app.run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)))

25行目から27行目は、準備したものに置き換えてください。

これを、app.py という名前で保存します。私は、Githubアカウントに連携したVS Codeを使って準備し、GithubからRender(サーバー) へ繋いでデプロイさせました。

③テストしてみる

さぁ、契約したダイヤルSMS番号へ電話をかけてみましょう。電話が応答されると、まず、Renderのサービス内のログ画面に、ダイヤルSMSの着信データがPOST送信されたことが表示されます。

"POST /webhook HTTP/1.1" 200 -

そして、受信用に設定したメールアドレスへ、メールが届いているはずです。

件名は『📞 新しいWebhook通知』

本文は『  新しい通話データを受信しました!   
    📌 Caller: (架電者の電話番号)
    📌 Recipient: (契約したダイヤルSMS番号)
    📌 Call Time: (入電日時)』です。

便利なダイヤルSMSの機能を、最大限に活かしてください。

Tags :

PCからSMSを送信する SMS マーケティング SMS配信 マーケティング