Chat App Message Service提供建立模板、發送訊息、批量發送訊息等API介面,您可以通過調用API介面,給目標使用者發送Chat App訊息。本文以WhatsApp類型通道為例,其他類型通道可作參考。
您可以根據業務需要和自身情況選擇合適的方式調用Chat App Message ServiceAPI:
適用於習慣互動式操作介面的情境,或者初次使用阿里雲產品的開發人員使用者。您可以在OpenAPI開發人員門戶中調試和擷取SDK請求樣本。
支援多種程式設計語言,包括Java、Go、PHP、Python等。使用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。 | - |
使用者權限 | 阿里雲主帳號擁有較高許可權,建議您通過RAM使用者進行API調用和日常營運。 您可以通過RAM控制台,單擊RAM使用者名稱稱查看使用者權限。請確保您所調用API的RAM使用者已有Chat App Message Service相關許可權:
| |
AccessKey ID | 您可以登入RAM控制台,單擊RAM使用者名稱稱查看AccessKey ID。 | |
AccessKey Secret | 建立後不支援二次查看。若本地無備份,建議重新建立一對AccessKey使用。 |
環境配置
本文以Java語言為例,進行後續操作。更多語言及其SDK安裝方式,請參見安裝與使用流程。
檢查Java環境:您的Java版本需高於Java 8。Java環境配置的方法,請參見在Windows搭建Java開發環境。
安裝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>配置環境變數:為避免在代碼中顯式地編碼建立AccessKey(AccessKey)而造成泄露,建議您把AccessKey在Linux、macOS和Windows系統配置環境變數,通過環境變數進行讀取。配置後請重啟或重新整理您的編譯運行環境,包括IDE、命令列介面、其他傳統型應用程式及後台服務,以確保最新的系統內容變數成功載入。
配置代理(可選):如果您需要通過Proxy 伺服器訪問,可通過SDK進行配置,請參見代理配置。
API基本資料
Chat App Message Service所提供的API基本資料參見如下:
介面版本 | |
RPC | |
(Endpoint) | 公網接入地址:cams.ap-southeast-1.aliyuncs.com |
API調用流程
建立通道:在介面建立通道。
通道即指您在使用Chat AppMessage Service時訊息發送所使用的通道類型。支援WhatsApp、Viber、Messenger、Instagram、Email通道類型。
您需選擇適合自己的通道類型,不同類型的通道只能發送各自類型的訊息。
註冊並綁定WABA:使用ChatappBindWaba介面綁定WABA。
在調用該介面前,您需已有註冊的WABA帳號,通過API的方式無法註冊WABA帳號,若您沒有登入的WABA帳號,您可在Chat App Message Service控制台通過嵌入式頁面註冊WABA。
WhatsApp Business Account(WABA)是指企業發送WhatsApp商業訊息前需要註冊的WhatsApp官方業務賬戶,用於發送商業訊息。經過WhatsApp企業認證的WABA會獲得認證標誌,提高客戶對公司資訊的信任度,增強品牌形象,減少虛假資訊的幹擾。您可以通過Facebook官方嵌入式快速註冊WABA。
新增號碼:使用AddChatappPhoneNumber介面新增號碼。新增的號碼將用於發送WhatsApp訊息。
通過同步號碼,您可以將已綁定且通過審核的WABA下的號碼與BM平台進行同步,使用ChatappSyncPhoneNumber介面同步號碼資訊。
號碼遷移允許客戶將在其他BSP登入的電話號碼通過號碼遷移功能遷移至阿里雲。遷移後的電話號碼會保留原有顯示名稱、品質評分、發訊息限制、官方商業帳號狀態和之前已經過審的所有高品質訊息模板。您可使用CreateChatappMigrationInitiate介面建立需要遷移的號碼。
驗證號碼:使用GetChatappVerifyCode介面擷取號碼驗證碼、再使用ChatappVerifyAndRegistr介面驗證號碼、驗證號碼後,使用GetPhoneNumberVerificationStatus介面擷取號碼驗證狀態。
若您使用的是通過號碼遷移來的號碼,可通過GetMigrationVerifyCode介面擷取遷移號碼的驗證碼,再通過ChatappMigrationVerified介面校正遷移號碼。
建立並設計範本:使用CreateChatappTemplate介面建立並設計範本。模板建立成功後,將自定進入審核流程,再通過GetChatappTemplateDetail介面查詢範本審核詳情。
模板進入審核流程後,您需後續持續關注模板審核狀態。一般在五分鐘之內完成審核,偶爾會出現審核超過24小時的情況。
WhatsApp訊息模板在審核的過程中可能會出現類別自動變更的情況,您可在調用CreateChatappTemplate介面時,將CategoryChangePaused參數設定為true,具體詳情請參見WhatsApp訊息模板類別變更及發送控制設定。
發送Chat App訊息:使用SendChatappMessage介面,或使用SendChatappMassMessage介面批量發送訊息。
發送Chat App訊息前請確保您賬戶餘額充足。更多詳情,請參見Chat App Message Service定價。
查看Chat App訊息發送詳情:通過ChatAppStatus(輕量訊息佇列模式 | Http批量推送模式)回執訊息接收ChatApp訊息發送狀態報表。
接收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訊息和簽名範例程式碼。