メディアメッセージの送信

messagesノードを使用して、音声、ドキュメント、画像、スタンプ、動画のいずれかを含むメッセージをカスタマーに送信します。

要は、メディアを含むメッセージを送信する際に、リクエスト本文で、アップロードされたメディアのIDまたはメディアへのリンクのいずれかを指定する必要があるということです。また、送信するメディアのタイプを、audiodocumentimagestickervideoの中から指定する必要もあります。リクエストが受信されると、メディアがWhatsAppサーバーにアップロードされ、toフィールドで指定されたユーザーに送信されます。

現在、WhatsApp Business APIでメディアメッセージを送信するには、以下の2つの方法があります。

  • ID — IDを使用するには、まずmediaノードを使用してメディアをアップロードし、messages API呼び出しに必要なIDを取得する必要があります。
  • リンク — リンクを使用するには、アプリがメディアをダウンロードするダウンロード元のHTTP(S)リンクを指定します。これにより、自分でメディアをアップロードする手順を省略できます。

開始する前に

以下が必要です。

ステップ1: /messagesPOSTリクエストを送信する

メディアをアップロードした後、idフィールドで返されたIDをメディアメッセージを送信するAPI呼び出しで使用します。または、送信するメディアを指すlinkパラメーターを指定することもできます(現在はHTTP/HTTPSリンクのみがサポートされています)。

idまたはlinkのいずれかが必要ですが、両方を同時に使用しないでください。

下記の例には、audiodocumentimagestickervideoなどのさまざまなオブジェクトが示されていますが、これはあくまでも説明のためです。有効なリクエスト本文には、これらのいずれかしか含まれていません。

POST /v1/messages
{
  "recipient_type": "individual",
  "to": "whatsapp-id",
  "type": "audio" | "contact" | "document" | "image" | "location" | "sticker" | "text" | "video",
  
  "audio": {
    "id": "your-media-id"
  }
  
  "document": {
    "id": "your-media-id",
    "filename": "your-document-filename"
  }
  
  "document": {
    "link": "the-provider-name/protocol://the-url",
    "provider": {
        "name" : "provider-name"
    }
  }
  
  "document": {
    "link": "http(s)://the-url.pdf"
  }
  
  "video": {
    "id": "your-media-id"  
  }
  
  "image": {
    "link": "http(s)://the-url",
    "provider": {
        "name" : "provider-name"
    }
  }
  
  "image": {
    "id": "your-media-id"   
  }
  
  "sticker": {
    "id": "your-media-id"
  }
  
  "sticker": {
    "link": "http(s)://the-url",
    "provider": {
      "name" : "provider-name"
    }
  }
}

パラメーターに関する詳細については、以下を参照してください。

ステップ2: 応答を確認する

成功した場合の応答には、メッセージIDを含むmessagesオブジェクトが含まれます。

{
  "messages": [{
    "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU"
  }]
}  

成功しなかった場合、メッセージ送信が成功した場合と同様のメッセージIDが応答に含まれていても、Webhook URLにコールバックが送信されます。そのため、Webhookサーバーを設定しておくことが重要です。

エラーについて詳しくは、エラーコードとステータスコードをご覧ください。