ネットワークの設定とデバッグ

このドキュメントは、ネットワークの設定と、問題のデバッグに関する情報を提供します。

WhatsApp Business APIクライアントでWhatsAppサーバーに接続するには、特定のネットワーク要件があります。ビジネスで以下を行えない場合、残念ながらWhatsApp統合はサポートされません。

ビジネスごとにネットワークの構成やセキュリティの状況が異なることを当社は理解しています。接続やセキュリティに特別な要件があり、設定の際にこのドキュメント内の情報では不十分な場合は、ダイレクトサポートにお問い合わせください

WhatsApp Business APIクライアントでは長期TCP接続が必要です。散発的なリクエストが行われるため、接続はアイドル状態のままにはなりません。ファイアウォール、ルーター、セキュリティなどによって長期TCP接続が終了しないようにしてください。

ポート

送信トラフィックに使用する次の2つのポートがあります。

  • 5222
  • 443

これらのポートは受信トラフィックをリッスンせず、受信トラフィックに使用されません。ビジネスのファイアウォールが、通常通り受信トラフィックからの保護を行います。

WhatsApp Business APIクライアントのデフォルトポートは5222です。そのポートを使用できない場合、アプリはポート443にフォールバックします。ポート443は、少なくともアプリの登録と再起動時にHTTPS用に開かれている必要があります。ポート5222を閉じたままポート443を開くことは可能ですが、ポート5222を開いたままポート443を閉じることはできません。

両方のポートを開き、すべての送信トラフィックを許可することをおすすめします。

プロトコル

WhatsApp Business APIクライアントは次の2つのタイプのプロトコルを使用します。

  • chatd
  • HTTPS

WhatsAppプロプライエタリチャットプロトコル(chatdと呼ばれる)は、暗号化されたメッセージと情報をWhatsAppサーバーとの間で送受信するために使用されます。これはプロプライエタリなので、開くポートはすべての送信トラフィックの許可リストにあることが必要です。一部のファイアウォールとプロキシはSSL以外の接続を終了させるため、WhatsAppサーバーに接続するアプリの機能が妨げられます。

WhatsAppはHTTPS登録の際に使用し、再起動の際にも必要となります。アプリの再登録や再起動がいつ必要になるか分からないため、登録後はHTTPSをブロックしないようにすることをおすすめします。

IPアドレス

WhatsAppは幅広いIPアドレスの範囲をサーバーに使用します。すべてのIPアドレスを許可することもできます。ただし、上記のポートからのみ、すべての送信トラフィックと接続を許可するのが最善です。

WhatsAppサーバーIPアドレスとアドレス範囲(.zipファイル)
(2022年6月26日更新、2022年6月26日から適用開始)

このリストは頻繁に変更されることがあります。許可リストが変更されるたびにネットワークでリストを更新しなくて済むよう、5222または443のポートからのすべての送信トラフィックを許可することをおすすめします。

ホスト名

IPアドレスではなくホスト名で、WhatsAppサーバーを許可リストに追加できます。

WhatsApp Business APIクライアントで接続が必要なWhatsAppサーバーのホスト名は次のとおりです。

  • .*.cdn.whatsapp.net
  • g.whatsapp.net
  • graph.facebook.com
  • graph.whatsapp.com
  • media-.*.cdn.whatsapp.net
  • media..*.fna.whatsapp.net
  • mmg.whatsapp.net
  • pps.whatsapp.net
  • static.whatsapp.net
  • v.whatsapp.net

Dockerコンテナイメージ

Dockerコンテナイメージをダウンロードするため、そのホストであるJFrog内のリポジトリへのアクセスを許可することも必要になります。

IPアドレスは提供できないので、JFrogの許可リストではホスト名を使用しなければなりません

必要なJFrogホスト名は次のとおりです。

  • docker.whatsapp.biz
  • dl.bintray.com
  • akamai.bintray.com

ファイアウォール

ファイアウォールとその動作方法によっては、ホスト名を許可リストに追加しても機能せず、代わりにすべてのIPアドレスを許可リストに追加することが必要になる場合があります。

ホスト名を許可リストに登録するだけでは機能しないファイアウォールの動作の例としては、次のものがあります。

  • (データセンターで構成されているDNSに対して) DNSクエリを実行し、その結果として得られたIPを許可リストで使用するファイアウォール。
  • データセンター内のマシンからのアウトバウンドDNSクエリを探し、その応答に含まれるIPアドレスを許可リストで使用するファイアウォール。
  • HTTP/HTTPSハンドシェイクでホスト名を探すファイアウォール。

ファイアウォールがこのいずれかの動作をする場合は、許可リストでのIPアドレスの使用に進んでください。

プロキシ

使用しているプロキシに対する次の環境変数を設定してネットワークプロキシを構成し、Coreappに渡します。

  • http_proxy
  • https_proxy

WADebugでのテスト

WADebugツールを使うと、Coreappコンテナが必要なWhatsAppサーバーすべてにアクセスできるかどうかを手軽にチェックできます。WADebugがインストールされている場合は、次のコマンドを実行するだけです。

  wadebug partial check_network