すべてのプロダクト
Search
ドキュメントセンター

Chat App Message Service:API経由でのメッセージ送信

最終更新日:Aug 29, 2026

Chat App Message Service は、テンプレートの作成、単一メッセージの送信、メッセージの一括送信を行うためのAPIを提供します。このトピックでは、WhatsAppを例として使用します。他のチャネルタイプも同様のプロセスです。

次の方法でChat App Message Service API を呼び出すことができます。

  • Alibaba Cloud OpenAPI Portal

    インタラクティブなインターフェイスを通じてAPIのデバッグを行い、SDK リクエストの例を取得します。Alibaba Cloud を初めて使用する開発者に最適です。

  • SDK

    SDKは、JavaGoPHPPythonなど、複数のプログラミング言語で利用できます。SDK を使用してChat App Message Service を統合することで、開発効率が向上します。

  • カスタムカプセル化 (非推奨)

    Alibaba Cloud SDK は、リクエスト署名、タイムアウト、リトライを処理します。開発コストを削減するために、SDKの使用を推奨します。Raw API コールを行う必要がある場合は、「SendChatappMessage」および「リクエスト構文と署名メソッド V3」をご参照ください。

SDK を使用して Chat App Message Service を統合するには、OpenAPI Portal で API を確認した後、以下の手順に従って Chat App Message Service を統合します。

image

事前準備

事前準備

説明

関連ドキュメント

Alibaba Cloud アカウントの登録

企業実名認証の完了

  • Enterprise identity verification confirms the account holder is an enterprise or government entity.

  • Chat App Message Service does not support individual accounts.

Alibaba Cloudアカウントの作成

企業実名認証

サービスの有効化

Chat App Message Service コンソールにログインし、サービスを有効化します。

-

ユーザー権限の設定

Alibaba Cloud アカウントは広範な権限を持ちます。API コールや日常の操作にはRAM ユーザーを使用してください。

RAM コンソールにログインし、RAM ユーザー名をクリックすることで、ユーザーの権限を確認できます。API コールを行うRAM ユーザーにChat App Message Service で必要な権限が付与されていることを確認してください。

  • AliyunCamsFullAccess:Chat App Message Service を管理するための完全な権限。

RAMユーザーの作成

RAMユーザーの権限管理

RAM 認可

AccessKey ID

RAM コンソールにログインし、RAM ユーザー名をクリックして AccessKey ID を表示します。

AccessKeyの作成

AccessKey シークレット

AccessKey シークレットは作成時にのみ表示されます。バックアップを保存していない場合は、新しいAccessKey ペアを作成してください。

環境設定

この例では Java を使用します。他の言語およびSDKのインストールについては、「インストール方法」をご参照ください。

  1. Java 8 以降がインストールされていることを確認してください。詳細な手順については、「WindowsでJava開発環境をセットアップする」をご参照ください。

  2. Maven 依存関係を設定してSDKをインストールします。

    Maven プロジェクトのpom.xmlで、<dependencies>に以下を追加し、the-latest-version最新のバージョン番号に置き換えます。その後、Maven の依存関係を再読み込みします。

    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>alibabacloud-cams20200606</artifactId>
      <!-- 'the-latest-version' を最新のバージョン番号に置き換えてください: https://mvnrepository.com/artifact/com.aliyun/alibabacloud-cams20200606 -->
      <version>the-latest-version</version>
    </dependency>
  3. 環境変数の設定:コードにAccessKey ペアをハードコーディングしないように、認証情報を環境変数に保存します。設定後、IDE、コマンドラインインターフェイス、およびその他のアプリケーションを再起動して、新しい変数を読み込ませます。

  4. プロキシの設定 (オプション)。リクエストをプロキシ経由でルーティングするには、SDKでプロキシを設定します。「プロキシ設定」をご参照ください。

APIの基本情報

APIバージョン

2020-06-06

APIスタイル

RPC

サービスエンドポイント

(Endpoint)

パブリックエンドポイント:cams.ap-southeast-1.aliyuncs.com

API を呼び出す前に API パラメーターを確認してください。オンラインデバッグ | API概要

ワークフロー

image
  1. チャネルの作成チャネル管理ページに移動します。

    1. チャネルは、メッセージを送信するために使用される経路の種類です。サポートされているチャネル:WhatsApp、Viber、Messenger、Instagram、およびEメール。

    2. 各チャネルは、対応するメッセージタイプのみに対応しています。

  2. WABAの登録とバインドChatappBindWaba API を呼び出して WhatsApp ビジネスアカウント (WABA) をバインドします。

    • このAPIを呼び出す前に、登録済みの WhatsApp ビジネスアカウント (WABA) が必要です。WABA は API 経由では登録できません。Chat App Message Service コンソールから登録してください。

    • 商用 WhatsApp メッセージを送信するには、WhatsApp ビジネスアカウント (WABA) が必要です。検証済みの WABA にはバッジが表示され、顧客の信頼を高め、ブランドイメージを向上させると同時に、不正なメッセージによる干渉を減らします。

  3. 番号の追加AddChatappPhoneNumber API を呼び出して番号を追加します。この電話番号は WhatsApp メッセージの送信に使用されます。

    • ChatappSyncPhoneNumber API を使用すると、バインドされ承認された WABA の番号をビジネスマネージャ (BM) プラットフォームと同期できます。

    • 他の BSP から Alibaba Cloud に電話番号を移行できます。移行された番号は、表示名、品質評価、メッセージング制限、公式ビジネスアカウントのステータス、および以前に承認されたすべての高品質メッセージテンプレートを保持します。移行を開始するには、CreateChatappMigrationInitiate API を使用します。

  4. 番号の検証GetChatappVerifyCode API を呼び出して番号の検証コードを取得します。次に、ChatappVerifyAndRegister API を使用して番号を検証します。検証後、GetPhoneNumberVerificationStatus API を使用して検証ステータスを確認します。

    • 移行した電話番号を使用している場合は、GetMigrationVerifyCode API を呼び出して検証コードを取得します。次に、ChatappMigrationVerified API を呼び出して移行した番号を検証します。

  5. テンプレートの作成と設計CreateChatappTemplate API を呼び出してテンプレートを作成します。テンプレートが作成されると、自動的に審査に提出されます。次に、GetChatappTemplateDetail API を使用してテンプレートの審査詳細を照会します。

    • 提出後、審査ステータスを監視してください。審査は通常5分以内に完了しますが、24時間以上かかる場合もあります。

    • WhatsApp メッセージテンプレートのカテゴリは、審査中に自動的に変更されることがあります。CreateChatappTemplate API を呼び出す際に、CategoryChangePausedをtrueに設定すると、カテゴリが変更されたときに送信を一時停止できます。「WhatsAppメッセージテンプレートのカテゴリ変更と送信制御」をご参照ください。

  6. メッセージの送信SendChatappMessage または SendChatappMassMessage API を呼び出してメッセージを送信します。

    • 送信前にアカウント残高が十分であることを確認してください。「料金」をご参照ください。

  7. メッセージ送信詳細の表示:ChatAppStatusコールバック (Simple Message Queue | HTTP URL) を通じて、送信済みメッセージのレポートを受信できます。

  8. モバイル発信 (MO) メッセージの受信:ChatAppInboundコールバック (Simple Message Queue | HTTP URL) を通じて、インバウンドメッセージを受信できます。

API操作の詳細については、「API概要」をご参照ください。

サンプルコード

次の例では、SendChatappMessage API を呼び出してメッセージを送信します。コメントで示されているようにパラメーターを入力してください。

// このファイルは自動生成されます。編集しないでください。ありがとうございます。
package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     * <b>description</b> :
     * <p>認証情報を使用してクライアントを初期化します。</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.cams20200606.Client createClient() throws Exception {
        // 本番環境では、AccessKey をハードコーディングしない、より安全な方法を推奨します。詳細は、https://www.alibabacloud.com/help/doc-detail/2542825.html をご参照ください。
        com.aliyun.credentials.Client credential = new com.aliyun.credentials.Client();
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                .setCredential(credential);
        // サービスエンドポイント。詳細は、https://api.alibabacloud.com/product/cams をご参照ください。
        config.endpoint = "cams.ap-southeast-1.aliyuncs.com";
        return new com.aliyun.cams20200606.Client(config);
    }

    public static void main(String[] args_) throws Exception {

        com.aliyun.cams20200606.Client client = Sample.createClient();
        java.util.Map<String, String> templateParams = TeaConverter.buildMap(
                // これらをテンプレートの変数名と値に置き換えてください。
                new TeaPair("name", "田中太郎"),
                new TeaPair("sex", "男性")
        );
        com.aliyun.cams20200606.models.SendChatappMessageRequest sendChatappMessageRequest = new com.aliyun.cams20200606.models.SendChatappMessageRequest()
                // メッセージ送信用のパラメーター。
                .setTemplateParams(templateParams)
                .setTemplateCode("XXXXXXXXXXX")
                .setChannelType("whatsapp")
                .setType("template")
                .setLanguage("en")
                .setFrom("XXXXXXXX")
                .setTo("XXXXXXXX")
                .setCustSpaceId("XXXXXXXXXXX");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            // このコードをコピーして実行する場合は、APIの戻り値をご自身で出力してください。
            client.sendChatappMessageWithOptions(sendChatappMessageRequest, runtime);
        } catch (TeaException error) {
            // これは出力およびデモ目的のみです。プロジェクトでは例外を慎重に処理し、無視しないでください。
            // エラーメッセージ。
            System.out.println(error.getMessage());
            // 診断URL。
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // これは出力およびデモ目的のみです。プロジェクトでは例外を慎重に処理し、無視しないでください。
            // エラーメッセージ。
            System.out.println(error.getMessage());
            // 診断URL
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}

OpenAPI Portalにアクセスすると、他の言語での完全なSDKの例を確認できます。Raw API コールを行うには、「SendChatappMessage」および「リクエスト構文と署名メソッド V3」をご参照ください。

メッセージ配信失敗のトラブルシューティング

API を呼び出してメッセージを送信した後、受信者がメッセージを受信しない場合は、次の手順で問題をトラブルシューティングします。

  1. WABA ビジネス API を呼び出したことの確認:個人の WhatsApp リンク (api.whatsapp.com/send) でテストするのではなく、SendChatappMessage API を呼び出してメッセージを送信したことを確認してください。個人の WhatsApp リンクは WhatsApp ビジネスアカウント (WABA) を経由しないため、API コールがメッセージを配信したかどうかを検証できません。

  2. 24 時間のカスタマーサービスウィンドウが開いていることの確認:WhatsApp Business では、エンドユーザーが最初にビジネスにメッセージを送信する必要があります。その後、ビジネスはそのユーザーに次の 24 時間のカスタマーサービスウィンドウ内でメッセージを送信できます。エンドユーザーがまだメッセージを送信していない場合は、個人の WhatsApp アプリから WABA の電話番号に任意のメッセージを送信してウィンドウを開き、再度 API を呼び出してください。

  3. メッセージワークベンチでの配信ステータスの確認Chat App Message Service コンソールにログインし、[メッセージワークベンチ] に移動します。[online phone number selector] で、メッセージの送信に使用した WABA の電話番号を選択します。検索ボックスに受信者の電話番号を入力し、Enter キーを押して番号を連絡先として追加します。その後、その会話の送受信メッセージのステータスを表示できます。

  4. その他の一般的な原因の確認:メッセージがまだ配信されない場合は、次の項目を順番に確認してください。

    • メッセージテンプレートの承認ステータス が審査を通過しているかどうか。

    • 送信元の電話番号が検証を完了しているかどうか。

    • アカウント残高が十分であるかどうか。

    • 24 時間のカスタマーサービスウィンドウが期限切れになっていないかどうか。

具体的なエラーについては、「SendChatappMessage」および「リクエスト構文と署名メソッド V3」で説明されているAPIエラーコードをご参照ください。

よくある質問