Chat App Message Service は、テンプレートの作成、単一メッセージの送信、およびメッセージの一括送信のための API を提供します。このトピックでは、WhatsApp チャンネルを例として使用しますが、このプロセスは他のチャンネルタイプにも参考にすることができます。
Chat App Message Service API は、以下の方法で呼び出すことができます:
Alibaba Cloud OpenAPI Portal
これは、対話型のユーザーインターフェースを好む開発者や、Alibaba Cloud プロダクトを初めて利用する開発者に適しています。OpenAPI Portal で API をデバッグし、SDK リクエストのサンプルを取得できます。
SDK は、Java、Go、PHP、Python など、複数のプログラミング言語で利用できます。SDK を使用して Chat App Message Service を統合することで、開発効率を向上させることができます。
カスタムカプセル化 (非推奨)
Alibaba Cloud SDK は、リクエスト署名、タイムアウト、リトライなどのメカニズムを処理します。開発コストを削減するために、SDK の使用を推奨します。API 呼び出しを独自にカプセル化したい場合は、「SendChatappMessage」および「署名の例」をご参照ください。
このトピックでは、SDK を使用して Chat App Message Service を使用する方法について説明します。OpenAPI Portal で API を確認した後、このトピックの手順に従って Chat App Message Service を統合できます。全体的なプロセスは次のとおりです:
事前準備
事前準備 | 説明 | リファレンス |
Alibaba Cloud アカウントの登録 企業実名認証の完了 |
| |
サービスの有効化 | Chat App Message Service コンソールにログインし、サービスを有効化します。 | - |
ユーザー権限の設定 | Alibaba Cloud アカウントは高いレベルの権限を持っています。API 呼び出しや日常の操作には RAM ユーザーを使用することを推奨します。 RAM コンソールにログインし、RAM ユーザー名をクリックすることで、ユーザーの権限を確認できます。API 呼び出しを行う RAM ユーザーが Chat App Message Service に必要な権限を持っていることを確認してください:
| |
AccessKey ID | RAM コンソールにログインし、RAM ユーザー名をクリックして AccessKey ID を表示します。 | |
AccessKey Secret | AccessKey Secret は作成後に再度表示することはできません。ローカルにバックアップがない場合は、新しい AccessKey ペアを作成してください。 |
環境設定
このトピックでは Java を例として使用します。他の言語とその SDK のインストール方法については、「インストール方法」をご参照ください。
Java 環境の確認:Java のバージョンは Java 8 以上である必要があります。詳細な手順については、「Windows で Java 開発環境を構築する」をご参照ください。
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>環境変数の設定:コードに AccessKey ペアをハードコーディングして漏洩するのを防ぐため、環境変数を設定し、そこから AccessKey ペアを読み取ることを推奨します。設定後、IDE、コマンドラインインターフェイス、その他のアプリケーションを含む開発環境を再起動またはリフレッシュして、新しい環境変数が読み込まれるようにしてください。
プロキシの設定 (オプション)。プロキシサーバー経由でサービスにアクセスするには、SDK を使用してプロキシを設定します。詳細については、「プロキシ設定」をご参照ください。
API の基本情報
API バージョン | |
RPC | |
(Endpoint) | パブリックエンドポイント:cams.ap-southeast-1.aliyuncs.com |
ワークフロー
チャンネルの作成: ページに移動します。
チャンネルは、メッセージを送信するために使用されるパスの種類です。WhatsApp、Viber、Messenger、Instagram、および E メールチャンネルがサポートされています。
各チャンネルは対応するメッセージタイプしか送信できないため、適切なチャンネルタイプを選択してください。
WABA の登録とバインド:ChatappBindWaba API を呼び出して WhatsApp Business Account (WABA) をバインドします。
この API を呼び出す前に、登録済みの WABA が必要です。API 経由で WABA を登録することはできません。お持ちでない場合は、Chat App Message Service コンソールの埋め込みページから登録してください。
WABA は、企業が商用 WhatsApp メッセージを送信するために登録する必要がある公式ビジネスアカウントです。WhatsApp によって認証された WABA は認証バッジを受け取り、これにより顧客の信頼を高め、ブランドイメージを向上させると同時に、詐欺メッセージによる妨害を減らします。
番号の追加:AddChatappPhoneNumber API を呼び出して番号を追加します。この電話番号は WhatsApp メッセージの送信に使用されます。
ChatappSyncPhoneNumber API を使用して、バインドされ承認された WABA の下の番号をビジネス マネージャ (BM) プラットフォームと同期させることができます。
番号移行機能を使用すると、他の BSP に登録されている電話番号を Alibaba Cloud に移行できます。移行された番号は、元の表示名、品質評価、メッセージング制限、公式ビジネスアカウントのステータス、および以前に承認されたすべての高品質メッセージテンプレートを保持します。CreateChatappMigrationInitiate API を使用して移行を開始します。
番号の検証:GetChatappVerifyCode API を呼び出して番号の検証コードを取得します。次に、ChatappVerifyAndRegistr API 操作を使用して番号を検証します。検証後、GetPhoneNumberVerificationStatus API 操作を使用して検証ステータスを確認します。
移行した電話番号を使用している場合は、GetMigrationVerifyCode API を呼び出して検証コードを取得します。次に、ChatappMigrationVerified API を呼び出して移行した番号を検証します。
テンプレートの作成と設計:CreateChatappTemplate API を呼び出してテンプレートを作成します。テンプレートが作成されると、自動的に審査に提出されます。次に、GetChatappTemplateDetail API を使用してテンプレートの審査詳細をクエリします。
テンプレートが審査に提出された後、その審査ステータスを監視します。審査は通常 5 分以内に完了しますが、場合によっては 24 時間以上かかることもあります。
WhatsApp メッセージテンプレートのカテゴリは、審査プロセス中に自動的に変更されることがあります。CreateChatappTemplate API を呼び出す際に、CategoryChangePaused パラメーターを true に設定して、カテゴリが変更されたときに送信を一時停止することができます。詳細については、「WhatsApp メッセージテンプレートのカテゴリ変更時の送信制御の追加」をご参照ください。
メッセージの送信:SendChatappMessage または SendChatappMassMessage API を呼び出してメッセージを送信します。
送信する前に、アカウントに十分な残高があることを確認してください。詳細については、「Chat App Message Service の料金」をご参照ください。
メッセージ送信詳細の表示:ChatAppStatus コールバック (Simple Message Queue | HTTP URL) を通じて送信済みメッセージのレポートを受信します。
モバイル発信 (MO) メッセージの受信:ChatAppInbound コールバック (Simple Message Queue | HTTP URL) を通じて受信メッセージを受信します。
API 操作の詳細については、「API 概要」をご参照ください。
サンプルコード
以下のサンプルコードは、SDK を使用して SendChatappMessage API を呼び出してメッセージを送信する方法を示しています。コメントに従ってパラメーターを入力してください。
// このファイルは自動生成されます。編集しないでください。
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* description :
* <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());
// 診断アドレス。
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());
// 診断アドレス
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
OpenAPI Portal にアクセスして、さまざまな言語の完全な SDK リクエストのサンプルを表示できます。API 呼び出しをカプセル化したい場合は、「SendChatappMessage」および「署名の例」をご参照ください。