コンテンツへスキップ
Wbiztool

メッセージングAPI

メッセージのステータスAPI

API経由で送信したメッセージが、まだキューにあるのか、送信済みなのか、失敗したのかを確認します。重要なメッセージが送信されたことの確認や、送信されなかった理由の調査に利用できます。

POSThttps://wbiztool.com/api/v1/message/status/{msg_id}/

リクエストボディ: JSONまたはフォームフィールド

メッセージIDはURLに含めます。{msg_id}を、メッセージ送信グループに送信複数の番号に送信メッセージの予約で返されたmsg_idに置き換えてください。例:https://wbiztool.com/api/v1/message/status/9817263/

クイック例#

curl -X POST https://wbiztool.com/api/v1/message/status/9817263/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY"
  }'

12345YOUR_API_KEYはご自身の値に置き換えてください。値の確認場所は認証をご覧ください。

リクエストパラメータ#

URL

msg_idinteger必須

メッセージIDで、URLパスの一部として指定します。整数で、APIキーのワークスペースに属している必要があります。

ボディ

client_idinteger必須

設定 → APIキーに表示されるAPIクライアントIDです。

api_keystring必須

同じページにあるAPIキーです。

公式クライアントを使う#

Pythonクライアントは、このエンドポイントを代わりに呼び出します。

Python
from wbiztool_client import WbizToolClient

client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)

result = client.get_message_status(msg_id=9817263)
print(result.get("status_text"), result.get("error"))

クライアントはAPIと同じフィールドを返すため、result["status"]は成功フラグではなくメッセージの状態です。認証エラーではrequests.HTTPErrorが発生します。理由はe.response.json()["message"]で確認してください。

レスポンス#

このエンドポイントは、メッセージの現在の状態をHTTP 200で返します。

{
  "message": "Sent",
  "status": 1,
  "status_text": "Sent",
  "error": ""
}

失敗したメッセージの場合:

{
  "message": "Failed",
  "status": 2,
  "status_text": "Failed",
  "error": "Phone number invalid"
}
フィールド説明
statusintegerメッセージのステータスコード。下の表を参照してください。
status_textstringステータス名:CreatedSentFailedCancelledExpiredのいずれか。
messagestringstatus_textと同じ値。
errorstring or nullメッセージが失敗した理由。常に含まれ、エラーがない場合は空(""またはnull)です。

ステータスの値#

statusstatus_text意味
0Createdキューに登録済みまたは予約済みで、送信待ちです。
1SentあなたのWhatsApp番号から送信されました。
2Failed送信できなかったか、送信が中断されました。理由はerrorに記載されます。errorSending was interrupted and may have been delivered. Check WhatsApp before resending.の場合、受信者はすでにメッセージを受け取っている可能性があるため、自動で再送しないでください。
3Cancelled送信前にキャンセルされました(例:メッセージのキャンセルを使用)。
4Expiredexpire_after_secondsの期限までに送信されませんでした。

Sentが成功の最終状態です。このエンドポイントは、メッセージが相手の端末に配信されたか、既読になったかは返しません。

失敗したメッセージのerrorの値の例:Phone number invalidGroup not foundImage Url ErrorFile Url ErrorBlocked ContactFile exceeds WhatsApp size limit (…)File type not supportedSending was interrupted and may have been delivered. Check WhatsApp before resending.

エラー#

{
  "message": "Unknown message id",
  "status": 0,
  "status_text": "pending",
  "error": "Invalid message id"
}
メッセージ対処方法
Unknown message idそのIDのメッセージがAPIキーのワークスペースに存在しません。IDと、同じワークスペースのキーを使っていることを確認してください。
Auth Errorclient_idapi_keyの両方を送信してください。無効なJSONボディ(末尾のカンマなど)でもAuth Errorが返されます。
Invalid Client Idclient_idを数値で送信してください。HTTP 403で返ります。
Auth Error: invalid api keyキーが存在し、削除されておらず、このclient_idに属していることを確認してください。HTTP 400で返ります。

ヒント#

  • リアルタイムの更新にはWebhookを使う:メッセージの送信時にwebhookを指定すると、送信されたとき、または失敗したときにWbiztoolから通知されるため、ポーリングの必要がありません。キャンセルされたメッセージや期限切れのメッセージではWebhookは送信されないため、それらはこのエンドポイントで確認してください。
  • ポーリング:ポーリングする場合は、status0でなくなった時点で止めてください。確認の間隔は数秒空けてください。
  • 多数のメッセージをまとめて確認:1日分のメッセージを確認するには、IDごとにこのエンドポイントを呼び出す代わりに、メッセージ履歴を使用してください。
  • 古いメッセージは削除される:送信済み、失敗、キャンセル済み、期限切れのメッセージで約90日間変更のないものは、Unknown message idを返します。切断または削除された番号で、作成または予約から90日経ってもキューに残っているメッセージも同様です。
  • 古い連携:ボディにmsg_idを含めるPOST /api/v1/msg_status/は非推奨です。同じフィールドを返します。また、クエリ文字列にclient_idapi_keymsg_idを含めるGETも受け付けますが、APIキーがURLやログに露出します。このエンドポイントに切り替えてください。