メインコンテンツまでスキップ

SMS受信 API

Webhook を設定することで、エンドユーザーからお客様の番号に送信された返信内容、すなわち SMS受信 (MO) をリアルタイムで受け取ることができます。本ドキュメントでは、Webhook URL の設定方法、ペイロードパラメータの解析について詳しく説明し、複数の言語での受信処理サンプルを提供することで、ユーザーとの双方向 SMS インタラクションを迅速に実現できるようサポートします。

1. Webhook の設定と説明

Webhook の説明
  • リクエストメソッド (HTTP Method)GET
  • Webhook URLPaaSoo 管理コンソールで事前に設定した受信エンドポイント(お客様にて提供および保守)。
  • トリガーのタイミングPaaSoo がキャリアから SMS受信 (MO) メッセージを受け取ると、システムは直ちにお客様の Webhook URL に GET リクエストを発行し、そのメッセージの詳細をプッシュします。
  • 再試行メカニズム:サーバーが HTTP 200 OK を正しく返さなかった場合、PaaSoo はそれぞれ 5 分後、10 分後、30 分後 に再プッシュを試みます。

2. Webhook リクエストのサンプル

SMS受信メッセージが生成されると、PaaSoo プラットフォームは以下の形式でお客様の Webhook URL を呼び出します:

GET https://USER_CALLBACK_URL?type=mo&messageid=015bd4-d6dfa7-58w&to=05012345678&from=819012345678&text=Hello+World

3. リクエストパラメータ

受信した GET リクエストにおいて、URL Query には以下のパラメータが含まれます:

パラメータ説明サンプル
typestringメッセージタイプ。SMS受信 (MO) は mo で固定です。mo
messageidstringメッセージ ID。この SMS受信メッセージのグローバルに一意の識別子。015bd4-d6dfa7-58w
tostring宛先番号。通常は PaaSoo プラットフォームで申請した仮想番号(バーチャルナンバー)です。05012345678
fromstringエンドユーザーの携帯電話番号。819012345678
textstringSMS 本文。Hello World

4. 受信と処理のサンプル

以下のサンプルは、サーバー側で Webhook プッシュを受信して処理する方法を示しています。実際のアプリケーションでは、リッスンする URL を PaaSoo プラットフォームで設定した USER_CALLBACK_URL に対応するパスに変更し、実際の業務に応じてセキュリティ検証(IP ホワイトリスト、署名検証など)やデータベース登録のロジックを追加してください。

以下のコードは、Webhook URL が https://example.com/mo-callback であると想定しています。

import requests

# あなたの Webhook URL
url = "https://example.com/mo-callback"

# 受け取った SMS受信 (MO) のクエリパラメータをシミュレート
params = {
"type": "mo", # メッセージタイプ、mo で固定
"messageid": "015bd4-d6dfa7-58w", # メッセージ ID (グローバルで一意)
"to": "05012345678", # 宛先番号(仮想番号)
"from": "819012345678", # エンドユーザーの携帯電話番号
"text": "Hello World" # SMS 本文
}

try:
# プラットフォームから Webhook への HTTP GET リクエストをシミュレート
response = requests.get(url, params=params)
response.raise_for_status()

print(f"Webhook シミュレーション成功。サーバーレスポンスステータスコード: {response.status_code}")
print(f"レスポンスボディ: {response.text}")

except requests.exceptions.RequestException as e:
print(f"シミュレーション失敗: {e}")

5. レスポンス要件と再試行ポリシー

  • 成功レスポンス:サーバーがリクエストを正常に受け取り処理した後、このコールバックが正しく受け取られたことを PaaSoo に確認させるため、必ず HTTP 200 OK または同様の 2xx 成功ステータスコードを返す必要があります。
  • 再試行メカニズムPaaSoo が有効な 2xx レスポンスを受け取らなかった場合(サーバーのタイムアウトや 4xx/5xx を返した場合など)、システムは 5 分10 分30 分 の間隔で 1 回ずつ再プッシュを試みます。それでも HTTP 200 を受け取れない場合、システムはそれ以降の再試行を放棄します。

6. セキュリティとベストプラクティス

  1. データ転送のセキュリティ
    • 送信中の SMS コンテンツの安全性を保証するため、Webhook URL は HTTPS プロトコルを使用して暗号化することを強く推奨します。
  2. アクセス制御
    • 悪意のあるスキャンや偽装された呼び出しを防ぐため、サーバーまたはゲートウェイに IP ホワイトリスト を設定し、PaaSoo 公式サーバーの IP 帯域からのリクエストのみを許可することをお勧めします。
  3. 冪等性の設計
    • ネットワークの揺らぎや再試行メカニズムにより、サーバーが同一の SMS受信 (MO) メッセージを複数回受け取る可能性があります。データベースへの挿入やビジネスロジックの重複排除処理(冪等性)を実装する際は、必ず messageidメッセージ ID)を一意の識別子として使用してください。
テクニカルサポート

API 連携の過程で技術的な問題やビジネスに関する疑問が生じた場合は、いつでも当社の開発者サポートチーム(support@paasoo.com)までご連絡ください。誠心誠意、技術的なサポートを提供いたします。