全部產品
Search
文件中心

Chat App Message Service:通過API發送Chat App訊息

更新時間:Nov 21, 2025

Chat App Message Service提供建立模板、發送訊息、批量發送訊息等API介面,您可以通過調用API介面,給目標使用者發送Chat App訊息。本文以WhatsApp類型通道為例,其他類型通道可作參考。

您可以根據業務需要和自身情況選擇合適的方式調用Chat App Message ServiceAPI:

  • 阿里雲OpenAPI開發人員門戶

    適用於習慣互動式操作介面的情境,或者初次使用阿里雲產品的開發人員使用者。您可以在OpenAPI開發人員門戶中調試和擷取SDK請求樣本。

  • SDK參考

    支援多種程式設計語言,包括JavaGoPHPPython等。使用SDK整合Chat App Message Service,可提升您使用Chat App Message Service的開發效率。

  • 自訂封裝API調用(不推薦)

    阿里雲SDK已經封裝了簽名、逾時、重試等機制,我們建議您使用SDK進行整合,降低開發成本。如果您需要自行封裝請求來進行API調用,請參見SendChatappMessage-發送ChatApp訊息簽名範例程式碼

本文將以SDK的方式引導您使用Chat App Message Service。您可以先通過OpenAPI開發人員門戶,查看Chat App Message ServiceAPI後,根據本文指引開始整合Chat App Message ServiceAPI。整體流程:

準備工作

準備事項

說明

相關文檔

註冊阿里雲帳號

企業實名認證

  • 企業認證表示帳號持有人是企業或政府部門,以企業身份使用Chat App Message Service

  • Chat App Message Service暫不支援個人實名認證。

註冊阿里雲帳號

企業實名認證

服務開通

登入Chat App Message Service控制台,開通Chat App Message Service

-

使用者權限

阿里雲主帳號擁有較高許可權,建議您通過RAM使用者進行API調用和日常營運。

您可以通過RAM控制台,單擊RAM使用者名稱稱查看使用者權限。請確保您所調用API的RAM使用者已有Chat App Message Service相關許可權:

  • AliyunCamsFullAccess:管理Chat App Message Service的許可權。

建立RAM使用者

為RAM使用者授權

自訂授權資訊

AccessKey ID

您可以登入RAM控制台,單擊RAM使用者名稱稱查看AccessKey ID。

建立AccessKey

AccessKey Secret

建立後不支援二次查看。若本地無備份,建議重新建立一對AccessKey使用。

環境配置

本文以Java語言為例,進行後續操作。更多語言及其SDK安裝方式,請參見安裝與使用流程

  1. 檢查Java環境:您的Java版本需高於Java 8。Java環境配置的方法,請參見在Windows搭建Java開發環境

  2. 安裝SDK:請通過配置Maven依賴,完成Chat App Message ServiceSDK的安裝。

    請在您的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(AccessKey)而造成泄露,建議您把AccessKey在Linux、macOS和Windows系統配置環境變數,通過環境變數進行讀取。配置後請重啟或重新整理您的編譯運行環境,包括IDE、命令列介面、其他傳統型應用程式及後台服務,以確保最新的系統內容變數成功載入。

  4. 配置代理(可選):如果您需要通過Proxy 伺服器訪問,可通過SDK進行配置,請參見代理配置

API基本資料

Chat App Message Service所提供的API基本資料參見如下:

介面版本

2020-06-06

介面風格

RPC

服務存取點

(Endpoint)

公網接入地址:cams.ap-southeast-1.aliyuncs.com

建議您在調用API介面前,閱讀介面參數規範與使用說明。線上調試API概覽

API調用流程

  1. 建立通道:在通道管理介面建立通道。

    1. 通道即指您在使用Chat AppMessage Service時訊息發送所使用的通道類型。支援WhatsApp、Viber、Messenger、Instagram、Email通道類型。

    2. 您需選擇適合自己的通道類型,不同類型的通道只能發送各自類型的訊息。

  2. 註冊並綁定WABA:使用ChatappBindWaba介面綁定WABA。

    • 在調用該介面前,您需已有註冊的WABA帳號,通過API的方式無法註冊WABA帳號,若您沒有登入的WABA帳號,您可在Chat App Message Service控制台通過嵌入式頁面註冊WABA。

    • WhatsApp Business Account(WABA)是指企業發送WhatsApp商業訊息前需要註冊的WhatsApp官方業務賬戶,用於發送商業訊息。經過WhatsApp企業認證的WABA會獲得認證標誌,提高客戶對公司資訊的信任度,增強品牌形象,減少虛假資訊的幹擾。您可以通過Facebook官方嵌入式快速註冊WABA。

  3. 新增號碼:使用AddChatappPhoneNumber介面新增號碼。新增的號碼將用於發送WhatsApp訊息。

    • 通過同步號碼,您可以將已綁定且通過審核的WABA下的號碼與BM平台進行同步,使用ChatappSyncPhoneNumber介面同步號碼資訊。

    • 號碼遷移允許客戶將在其他BSP登入的電話號碼通過號碼遷移功能遷移至阿里雲。遷移後的電話號碼會保留原有顯示名稱、品質評分、發訊息限制、官方商業帳號狀態和之前已經過審的所有高品質訊息模板。您可使用CreateChatappMigrationInitiate介面建立需要遷移的號碼。

  4. 驗證號碼:使用GetChatappVerifyCode介面擷取號碼驗證碼、再使用ChatappVerifyAndRegistr介面驗證號碼、驗證號碼後,使用GetPhoneNumberVerificationStatus介面擷取號碼驗證狀態。

  5. 建立並設計範本:使用CreateChatappTemplate介面建立並設計範本。模板建立成功後,將自定進入審核流程,再通過GetChatappTemplateDetail介面查詢範本審核詳情。

    • 模板進入審核流程後,您需後續持續關注模板審核狀態。一般在五分鐘之內完成審核,偶爾會出現審核超過24小時的情況。

    • WhatsApp訊息模板在審核的過程中可能會出現類別自動變更的情況,您可在調用CreateChatappTemplate介面時,將CategoryChangePaused參數設定為true,具體詳情請參見WhatsApp訊息模板類別變更及發送控制設定

  6. 發送Chat App訊息:使用SendChatappMessage介面,或使用SendChatappMassMessage介面批量發送訊息。

  7. 查看Chat App訊息發送詳情:通過ChatAppStatus(輕量訊息佇列模式 | Http批量推送模式)回執訊息接收ChatApp訊息發送狀態報表。

  8. 接收Chat App上行訊息:通過ChatAppInbound(輕量訊息佇列模式 | Http批量推送模式)回執訊息接收Chat App上行訊息。

更多介面資訊,請參見API概覽

範例程式碼

使用SDK發送Chat App訊息(調用SendChatappMessage介面)的程式碼範例如下,請根據注釋完成參數填寫。

// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     * <b>description</b> :
     * <p>使用憑據初始化帳號Client</p>
     * @return Client
     *
     * @throws Exception
     */
    public static com.aliyun.cams20200606.Client createClient() throws Exception {
        // 工程代碼建議使用更安全的無AK方式,憑據配置方式請參見: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);
        // Endpoint 請參考 https://api.aliyun.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()
                //發送ChatApp訊息的參數,此處需替換成您實際使用的參數。
                .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) {
            // 此處僅做列印展示,請謹慎對待異常處理,在工程專案中切勿直接忽略異常。
            // 錯誤 message
            System.out.println(error.getMessage());
            // 診斷地址
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // 此處僅做列印展示,請謹慎對待異常處理,在工程專案中切勿直接忽略異常。
            // 錯誤 message
            System.out.println(error.getMessage());
            // 診斷地址
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }
    }
}

您可以訪問 OpenAPI開發人員門戶,查看各語言 SDK 請求完整樣本。如果您需要自行封裝請求來進行API調用,請參見SendChatappMessage - 發送ChatApp訊息簽名範例程式碼

常見問題