ダイヤルSMSの入電通知
April 2, 2025 · xoxzocom
<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="576" src="https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/dialsms-eyecatch-1024x576.jpg?resize=1024%2C576&ssl=1" alt="" class="wp-image-850" srcset="https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/dialsms-eyecatch.jpg?resize=1024%2C576&ssl=1 1024w, https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/dialsms-eyecatch.jpg?resize=300%2C169&ssl=1 300w, https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/dialsms-eyecatch.jpg?resize=768%2C432&ssl=1 768w, https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/dialsms-eyecatch.jpg?w=1280&ssl=1 1280w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
<p>ダイヤルSMSは、契約した電話番号に興味のある人が電話をかけてきたら、情報をSMSで24時間自動で送信するサービス。入電対応も不要なので、人件費もかからず、コスパ◎。</p>
<p>ダイヤルSMSに入電があったら、通知が欲しい…という時には『着信URL』を上手に使いましょう。この着信URLは、少し開発の知識が必要です。初心者の私が設定してみましたので、ぜひお試しください。</p>
<p>URLを準備するのですから、Webサーバーが必要になります。</p>
<p><strong>①サーバー準備→URLを設定</strong></p>
<p>今回、私は<a href="https://render.com/" data-type="link" data-id="https://render.com/">Render</a>というサーバーを使いました。こちらは現在英語のみの対応となっているようですが、料金表では『Hobby』プランが無料となっており、今回のプロジェクトのサポートに十分です。</p>
<p>使い方は<a href="https://note.com/shuzooooo/n/n6b40c5546cb0" data-type="link" data-id="https://note.com/shuzooooo/n/n6b40c5546cb0">こちらが</a>参考になるかもしれません。3. Webhokの設定にて Render.com のサービスのURLをコピーしたら、それを、EZSMSのダイヤルSMS設定画面にて、着信URLとして入力してください。</p>
<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="687" src="https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-04-02-15.23.11.png?resize=1024%2C687&ssl=1" alt="" class="wp-image-846" srcset="https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-04-02-15.23.11.png?resize=1024%2C687&ssl=1 1024w, https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-04-02-15.23.11.png?resize=300%2C201&ssl=1 300w, https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-04-02-15.23.11.png?resize=768%2C515&ssl=1 768w, https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-04-02-15.23.11.png?resize=1536%2C1030&ssl=1 1536w, https://i0.wp.com/ezsms.blogs.xoxzo.com/wp-content/uploads/2025/04/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-04-02-15.23.11.png?w=1664&ssl=1 1664w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
<p>これで、EZSMSのダイヤルSMSに入電があると、この着信URLへ着信の情報がPOST送信される設定が完了しました。</p>
<p><strong>②サーバー側での準備</strong></p>
<p>着信用URLで受け取った情報を、お好みに処理する設定をしておく必要があります。これには、サーバー側にスクリプトを置くのですが、PHPやPython、Node.js、Rubyなどのバックエンド言語を使います。</p>
<p>私は今回、着信を受けたらメールで通知してもらえるように設定することにしました。</p>
<p>メール送信者として、Gメールを使います。また、Gメールアカウントのアプリパスワードが必要になります。これは、普段ログインに使うパスワードとは違います。詳しくは<a href="https://support.google.com/mail/answer/185833?hl=ja" data-type="link" data-id="https://support.google.com/mail/answer/185833?hl=ja">こちらを</a>参照してください。このページからアプリパスワードの作成も行うことができます。</p>
<p>通知を受信したいメールアドレスも準備してください。</p>
<p>Gメールアドレス、アプリパスワード、そして受信用のメールアドレスが準備できたら、スクリプトを書きます。私の例では、pythonを使いました。</p>
<pre class="wp-block-code"><code>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)))
</code></pre>
<p>25行目から27行目は、準備したものに置き換えてください。</p>
<p>これを、<strong>app.py</strong> という名前で保存します。私は、Githubアカウントに連携したVS Codeを使って準備し、GithubからRender(サーバー) へ繋いでデプロイさせました。</p>
<p><strong>③テストしてみる</strong></p>
<p>さぁ、契約したダイヤルSMS番号へ電話をかけてみましょう。電話が応答されると、まず、Renderのサービス内のログ画面に、ダイヤルSMSの着信データがPOST送信されたことが表示されます。</p>
<pre class="wp-block-code"><code>"POST /webhook HTTP/1.1" 200 -</code></pre>
<p>そして、受信用に設定したメールアドレスへ、メールが届いているはずです。</p>
<p>件名は『📞 新しいWebhook通知』</p>
<p>本文は『 新しい通話データを受信しました! <br> 📌 Caller: (架電者の電話番号)<br> 📌 Recipient: (契約したダイヤルSMS番号)<br> 📌 Call Time: (入電日時)』です。</p>
<p>便利なダイヤルSMSの機能を、最大限に活かしてください。</p>
<p></p>