コンテンツへスキップ
Wbiztool

メッセージングAPI

WhatsAppグループへのメッセージ送信API

接続済みの番号がメンバーになっているWhatsAppグループに、WhatsAppのテキスト、画像、ドキュメントを送信します。チームへのお知らせ、コミュニティの最新情報、一斉通知などに利用できます。

POSThttps://wbiztool.com/api/v1/send_msg/group/

リクエストボディ: JSON、フォームフィールド、またはファイルをアップロードする場合はmultipart/form-data

メッセージはキューに登録され、あなたのWhatsApp番号からグループに送信されます。レスポンスにはmsg_idが含まれ、これを使ってステータスを確認できます。

クイック例#

curl -X POST https://wbiztool.com/api/v1/send_msg/group/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 0,
    "group_name": "Sales Team Mumbai",
    "msg": "Reminder: *weekly review* starts at 4 PM today."
  }'

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

リクエストパラメータ#

認証

client_idinteger必須

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

api_keystring必須

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

whatsapp_clientintegerオーナーに接続済みの番号が複数ある場合は必須

送信に使うWhatsApp番号のIDです。WhatsApp設定で確認できます。ワークスペースのオーナーに属する番号である必要があります。省略した場合、オーナーの接続済みの番号がちょうど1つであれば、その番号が使われます。

グループとメッセージ

group_namestring必須

WhatsAppグループの名前で、WhatsAppに表示されているとおりに正確に記述します。文字列で送信してください。2024のようなJSONの数値を送ると、HTMLエラーページ(HTTP 500)が返されます。グループの検索方法を参照してください。

msg_typeinteger任意

0テキスト(デフォルト)、1画像、2ファイルまたはドキュメント。

msgstringmsg_typeが0の場合は必須

メッセージ本文です。画像やファイルの場合はキャプションになり、空でもかまいません。WhatsAppの書式(*bold*_italic_~strikethrough~)が使えます。エイリアスとしてmessageも受け付けます。

画像とファイル

img_urlstringmsg_typeが1でファイルをアップロードしない場合は必須

画像の公開httpまたはhttps URLです。

file_urlstringmsg_typeが2でファイルをアップロードしない場合は必須

ファイルを直接ダウンロードできる公開httpまたはhttps URLです。

filefile任意

URLを指定する代わりに、画像やファイルをアップロードします。リクエストをmultipart/form-dataとして送信し、フィールド名はfileにしてください。

file_namestring任意

グループに表示されるファイル名です(例:price-list.pdf)。拡張子によってファイルの送信方法が決まるため、必ず拡張子を含めてください。小文字で送信され、& : ? * $ ;などの文字は_に置き換えられ、150文字に切り詰められます。省略した場合は、URLまたはアップロードされたファイルから名前が取得されます。

配信オプション

expire_after_secondsinteger任意

この秒数以内に送信されなかった場合、メッセージを期限切れ(ステータス4)にします。例:1時間なら3600。この処理は期限から少なくとも30秒後にバックグラウンドジョブで行われるため、1分未満の期限には頼らないでください。

webhookstring任意

メッセージが送信されたとき、または失敗したときにPOSTを受け取るURLです。ペイロードはメッセージ送信と同じです。

画像とファイルにはメッセージ送信APIと同じルールが適用されます。URLはAPIを呼び出した時点でダウンロードされます(最大100 MB)。メッセージの送信時には、16 MBを超える画像と64 MBを超える動画は失敗し、WAVとOGGの音声はサポートされず、対応する拡張子のないファイル(msg_type 2)には、アップロードしたファイルも含めて.pdfが付加されます。ファイル名は小文字で送信されます。拡張子とエラーの一覧は画像とファイルの送信をご覧ください。

ファイルをアップロードするには、メッセージ送信のmultipartの例を使い、URLを/api/v1/send_msg/group/に、phone/country_codegroup_nameに置き換えてください。

URLから画像を送信
curl -X POST https://wbiztool.com/api/v1/send_msg/group/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 1,
    "group_name": "Sales Team Mumbai",
    "img_url": "https://example.com/reports/weekly-sales.png",
    "msg": "This week'\''s sales summary"
  }'

グループの検索方法#

WbiztoolはAPIの呼び出し時にはグループ名を確認しません。メッセージの送信時に、WbiztoolがWhatsAppのチャットからgroup_nameを検索し、最初の検索結果を開きます。そのため、次の点に注意してください。

  • 接続済みのWhatsApp番号がグループのメンバーである必要があります。
  • 絵文字や記号も含め、WhatsAppに表示されているとおりの完全なグループ名を使用してください。先頭と末尾のスペースは無視されます。
  • 名前は一意にしてください。短い名前や一部だけの名前は、検索で先に表示される別のチャットに一致する可能性があります。
  • 一致するものがない場合、グループで管理者のみがメッセージを送信でき、あなたの番号が管理者でない場合、またはコミュニティの管理者のみが投稿できる場合、メッセージはGroup not foundエラーで失敗します。
  • あなたの番号がグループから退出している場合、メッセージはGroup member blockedエラーで失敗します。

グループに関する問題はAPIのレスポンスには表示されません。メッセージが送信されたかどうかは、Webhookまたはメッセージのステータスで確認してください。

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

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

Python
from wbiztool_client import WbizToolClient

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

result = client.send_message_to_group(
    group_name="Sales Team Mumbai",
    msg="Reminder: weekly review starts at 4 PM today.",
    whatsapp_client=678,
)
print(result)

エラーではrequests.HTTPErrorが発生します。理由はe.response.json()["message"]で確認してください。

レスポンス#

リクエストが成功すると、HTTP 200が返ります。

{
  "status": 1,
  "message": "Created",
  "msg_id": 9817263
}
フィールド説明
statusintegerメッセージがキューに登録された場合は1、リクエストが失敗した場合は0
messagestring成功時はCreated、それ以外はエラー内容。
msg_idintegerキューに登録されたメッセージのID。後でステータスを確認するために保存してください。成功時のみ含まれます。

"status": 1はメッセージがキューに登録されたことを意味し、グループに届いたことを意味するわけではありません。送信されたことを確認するには、Webhookまたはメッセージのステータスを使用してください。

エラー#

エラーはHTTP 400で返り、status0になります。

{ "status": 0, "message": "Group Name cant be null" }
メッセージ対処方法
Auth Error - Please send correct API key and Client id空でないapi_keyを送信してください。
Invalid client id.client_idを数値で送信してください。
Auth Error: invalid api keyキーが存在し、削除されておらず、このclient_idに属していることを確認してください。
Group Name cant be nullgroup_nameを追加してください。
Msg cant be nullテキストメッセージ(msg_type 0)にはmsgが必要です。
Image Url Can't be nullmsg_type 1の場合は、img_urlを送信するかfileをアップロードしてください。
File Url Can't be nullmsg_type 2の場合は、file_urlを送信するかfileをアップロードしてください。
Invalid file url, Can't download / Invalid file urlURLが公開されていない、タイムアウトした、またはファイルが100 MBを超えています。
Invalid whatsapp client Noneそのwhatsapp_client IDはワークスペースのオーナーに属していません。上記の注意事項をご覧ください。
Invalid whatsapp client id.whatsapp_clientを送信してください。オーナーの接続済みの番号がちょうど1つである場合を除き、必須です。
Not enough creditsプランの残りメッセージ数がありません。
Demo Account can not access apis通常のアカウントを使用してください。
Account Disabledアカウントが無効化されています。サポートにお問い合わせください。
Invalid JSON format: …JSONボディが無効です。末尾のカンマや、msg内のエスケープされていない改行が原因であることがよくあります。改行には\nを使用してください。

ヒント#

  • まず名前をテストする:自動化する前に、グループに短いテキストを送信し、メッセージのステータスを確認してください。
  • グループ名が変更された場合:WhatsAppで誰かがグループ名を変更した場合は、連携側のgroup_nameも更新してください。
  • メッセージタイプmsg_typeに指定できる値は012のみです。整数でない値を指定すると、JSONではなくHTMLのエラーページ(HTTP 500)が返ります。
  • 複数のグループに一度に送信複数の番号に送信では、1回のリクエストでグループ名と電話番号を混在させて指定できます。