このトピックでは、Java SDK を使用してサーバーサイドで MSS を統合する方法について説明します。
JAR パッケージのインポート
Maven を設定した後、メインの pom.xml ファイルに次の依存関係を追加します。
金融ゾーン以外のユーザーの場合、Message Push V2.0 SDK の最新バージョンは 5.0.2 です。金融ゾーンのユーザーの場合、Message Push V2.0 SDK の最新バージョンは 2.1.11 です。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>mpaas20201028</artifactId>
<version>5.0.1</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-openapi</artifactId>
<version>0.3.6</version>
</dependency>環境変数の設定
MPAAS_AK_ENV および MPAAS_SK_ENV 環境変数を設定します。
Linux および macOS の場合は、次のコマンドを実行します。
export MPAAS_AK_ENV=<access_key_id> export MPAAS_SK_ENV=<access_key_secret>説明access_key_idをご利用の AccessKey ID に、access_key_secretをご利用の AccessKey Secret に置き換えてください。Windows システムの構成
MPAAS_AK_ENV および MPAAS_SK_ENV 環境変数を作成します。それらの値をご利用の AccessKey ID と AccessKey Secret に設定します。
Windows を再起動します。
API リファレンス
個別データ同期 API
個別データ同期 API は、特定のユーザーまたはデバイスにデータを同期します。
パラメーターの説明
パラメーターは次のとおりです。
名前 | 型 | 必須 | 例 | 説明 |
appId | String | はい | ONEX570DA892117 | mPaaS コンソールから取得した App ID。 |
workspaceId | String | はい | PROD | mPaaS コンソールから取得したワークスペース ID。 |
bizType | String | はい | UCHAT | mPaaS コンソールで設定された同期 ID。詳細については、「コンソールの概要」をご参照ください。 |
linkToken | String | はい | プッシュ対象の ID。ユーザーに基づいてデータをプッシュする場合は、ユーザー ID を入力します。同期がデバイスに基づいてデータをプッシュするように設定されている場合は、デバイス ID を入力します。 | |
payload | String | はい | testtestatapalayd | 実際のビジネスメッセージ本文。フォーマットはカスタマイズ可能です。長さは 4,096 文字を超えることはできません。 |
thirdMsgId | String | はい | 1760339273 | データ同期リクエストの ID。ID は同じ同期 ID 内で一意である必要があります。ID が重複するリクエストは無視されます。ID は 100 バイト未満である必要があります。 |
osType | String | いいえ | iOS/Android | モバイルプラットフォームでプッシュをフィルターします。デフォルトでは、このパラメーターは渡されず、フィルターは実行されません。データは iOS と Android の両方のプラットフォームにプッシュされます。 |
appMinVersion | String | いいえ | 0.0.0.0 | クライアントバージョンでプッシュをフィルターします。データはこの値以上のバージョン番号を持つクライアントにのみプッシュされます。 |
appMaxVersion | String | いいえ | 100.100.100.100 | クライアントバージョンでプッシュをフィルターします。データはこの値以下のバージョン番号を持つクライアントにのみプッシュされます。 |
validTimeStart | String | いいえ | 1584448493913 | 現在の時刻が `validTimeStart` 以上の場合にのみデータがプッシュされます。 |
validTimeEnd | String | いいえ | 1584452093913 | 現在の時刻が `validTimeEnd` 以下の場合にのみデータがプッシュされます。 |
個別データ同期の結果コード
結果コード | 説明 | 解決策 |
SUCCESS | 成功 | 成功 |
ARGS_IS_NULL | 必須パラメーターが空です。 | すべての必須パラメーターが指定されていることを確認してください。 |
PAYLOAD_LONG | メッセージペイロードが長すぎます。 | payload パラメーターの長さが制限を超えていないことを確認してください。 |
THIRD_MSG_ID_LONG | サードパーティビジネス ID が長すぎます。 | サードパーティビジネス ID の長さが制限を超えていないことを確認してください。 |
BIZ_NOT_ONLINE | ビジネスシナリオの同期 ID が公開されていません。 | [mPaaS コンソール] > [データ同期] に移動します。`bizType` に対応する同期 ID が設定され、公開されていることを確認してください。 |
THIRD_MSG_ID_IS_NULL | サードパーティビジネス ID が空です。 | サードパーティビジネス ID が空でないことを確認してください。 |
SYSTEM_ERROR | システムエラーが発生しました。 | テクニカルサポートに連絡してエラーの原因を特定してください。 |
INVALID_TENANT_ID | テナント ID が無効です。 | appId が正しく、それを使用する権限があることを確認してください。 |
コード例
import com.alibaba.fastjson.JSON;
import com.aliyun.mpaas20201028.Client;
import com.aliyun.mpaas20201028.models.CreateOpenSingleDataRequest;
import com.aliyun.mpaas20201028.models.CreateOpenSingleDataResponse;
import com.aliyun.teaopenapi.models.Config;
public static void main(String[] args) throws Exception {
// Alibaba Cloud アカウントの AccessKey は、すべての API へのフルアクセス権限を持っています。API の呼び出しや日常の O&M には、Resource Access Management (RAM) ユーザーを使用することを推奨します。
// AccessKey の漏洩を防ぎ、リソースを保護するため、AccessKey ID と AccessKey Secret をプロジェクトコードに保存しないでください。
// この例では、AccessKey ID と AccessKey Secret を環境変数に保存する方法を示します。必要に応じて、設定ファイルに保存することもできます。
Config config = new Config();
// 必須。ご利用の AccessKey ID。
config.setAccessKeyId(System.getenv("MPAAS_AK_ENV"));
// 必須。ご利用の AccessKey Secret。
config.setAccessKeySecret(System.getenv("MPAAS_SK_ENV"));
// mPaaS の REGION_ID とエンドポイント。この例では、杭州の非金融リージョンを使用します。
config.setRegionId("cn-hangzhou");
config.setEndpoint("mpaas.cn-hangzhou.aliyuncs.com");
Client client = new Client(config);
CreateOpenSingleDataRequest singleRequest = new CreateOpenSingleDataRequest();
//*************必須プロパティ*************/
// mPaaS コンソールから取得した App ID。
singleRequest.setAppId("xxxxxxx");
// mPaaS コンソールから取得したワークスペース ID。
singleRequest.setWorkspaceId("xxxxxxxx");
// mPaaS コンソールのモバイル同期で設定された同期 ID。
singleRequest.setBizType("TEST-SYNC");
// プッシュ先のユーザーまたはデバイス (UTDID) の ID。
singleRequest.setLinkToken("testUserId");
// 実際のビジネスメッセージ本文。カスタム長は 4,096 文字を超えることはできません。
singleRequest.setPayload("testPayload");
// ビジネス ID。一意である必要があり、長さは 100 文字を超えることはできません。
singleRequest.setThirdMsgId("test_third_msg_id_" + System.currentTimeMillis());
//************オプションプロパティ*************/
// ターゲットデバイスの OS。有効値:iOS および Android。空のままにすると、OS は制限されません。
singleRequest.setOsType("IOS");
// 最小クライアントバージョン番号 (例: 8.6.0.0.9999)。空のままにすると、最小バージョンは制限されません。
singleRequest.setAppMinVersion("0.0.0.0");
// 最大クライアントバージョン番号 (例: 9.0.0.0.9999)。空のままにすると、最大バージョンは制限されません。
singleRequest.setAppMaxVersion("100.100.100.100");
// 有効期間の開始。空のままにすると、開始時刻は制限されません。
singleRequest.setValidTimeStart(System.currentTimeMillis());
// 有効期間の終了。空のままにすると、終了時刻は制限されません。最大有効期間は 30 日です。
singleRequest.setValidTimeEnd(System.currentTimeMillis() + (1000 * 3600));
CreateOpenSingleDataResponse openSingleData = client.createOpenSingleData(singleRequest);
System.out.println("response==>"+JSON.toJSONString(openSingleData));
}ご利用の AccessKey に `AliyunMPAASFullAccess` 権限があることを確認してください。詳細については、「RAM アカウントのアプリケーションレベルのアクセス制御」をご参照ください。
グローバルデータ同期 API
グローバルデータ同期は、すべてのデバイスにデータを同期します。
パラメーターの説明
以下はビジネスパラメーターです。
名前 | 型 | 必須 | 例 | 説明 |
appId | String | はい | ONEX570DA892117 | mPaaS コンソールから取得した App ID。 |
workspaceId | String | はい | PROD | mPaaS コンソールから取得したワークスペース ID。 |
bizType | String | はい | UCHAT | mPaaS コンソールで設定された同期 ID。詳細については、「コンソールの概要」をご参照ください。 |
payload | String | はい | testtestatapalayd | 実際のビジネスメッセージ本文。フォーマットはカスタマイズ可能です。長さは 4,096 文字を超えることはできません。 |
thirdMsgId | String | はい | 1760339273 | データ同期リクエストの ID。ID は同じ同期 ID 内で一意である必要があります。ID が重複するリクエストは無視されます。ID は 100 バイト未満である必要があります。 |
osType | String | いいえ | IOS/ANDROID | モバイルプラットフォームでプッシュをフィルターします。デフォルトでは、このパラメーターは渡されず、フィルターは実行されません。データは iOS および Android プラットフォームにプッシュされます。 |
appMinVersion | String | いいえ | 0.0.0.0 | クライアントバージョンでプッシュをフィルターします。データはこの値以上のバージョン番号を持つクライアントにのみプッシュされます。 |
appMaxVersion | String | いいえ | 100.100.100.100 | クライアントバージョンでプッシュをフィルターします。データはこの値以下のバージョン番号を持つクライアントにのみプッシュされます。 |
validTimeStart | String | いいえ | 1584448493913 | 現在の時刻が `validTimeStart` 以上の場合にのみデータがプッシュされます。 |
validTimeEnd | String | いいえ | 1584452093913 | 現在の時刻が `validTimeEnd` 以下の場合にのみデータがプッシュされます。 |
maxUid | Long | いいえ | 99 | 同期範囲の最大 UID (ユーザー ID またはデバイス ID の末尾から 2 番目と 3 番目の数字)。数字が文字でない場合は、ASCII コードに変換します。 |
minUid | Long | いいえ | 00 | 同期範囲の最小 UID (ユーザー ID またはデバイス ID の末尾から 2 番目と 3 番目の数字)。数字が文字でない場合は、ASCII コードに変換します。 |
uids | String | いいえ | 01,02,99 | このパラメーターは `maxUid` および `minUid` よりも優先度が高いです。離散的なユーザー ID セグメント (ユーザー ID またはデバイス ID の末尾から 2 番目と 3 番目の数字) を指定します。数字が文字でない場合は、ASCII コードに変換します。 |
グローバルデータ同期の結果コード
結果コード | 説明 | 解決策 |
SUCCESS | 成功 | 成功 |
ARGS_IS_NULL | 必須パラメーターが空です。 | すべての必須パラメーターが指定されていることを確認してください。 |
PAYLOAD_LONG | メッセージペイロードが長すぎます。 | payload パラメーターの長さが制限を超えていないことを確認してください。 |
THIRD_MSG_ID_LONG | サードパーティビジネス ID が長すぎます。 | サードパーティビジネス ID の長さが制限を超えていないことを確認してください。 |
BIZ_NOT_ONLINE | ビジネスシナリオの同期 ID が公開されていません。 | [mPaaS コンソール] > [データ同期] に移動します。`bizType` に対応する同期 ID が設定され、公開されていることを確認してください。 |
THIRD_MSG_ID_IS_NULL | サードパーティビジネス ID が空です。 | サードパーティビジネス ID が空でないことを確認してください。 |
SYSTEM_ERROR | システムエラーが発生しました。 | テクニカルサポートに連絡してエラーの原因を特定してください。 |
NOT_SUPPORT_GLOBAL | 同期 ID はグローバル呼び出しをサポートしていません。 | [mPaaS コンソール] > [データ同期] に移動します。`BizType` に対応する同期 ID が、特定のユーザーまたはデバイスへのプッシュ用に設定されているかどうかを確認してください。 |
INVALID_TENANT_ID | テナント ID が無効です。 | appId が正しく、それを使用する権限があることを確認してください。 |
コード例
import com.alibaba.fastjson.JSON;
import com.aliyun.mpaas20201028.Client;
import com.aliyun.mpaas20201028.models.CreateOpenGlobalDataRequest;
import com.aliyun.mpaas20201028.models.CreateOpenGlobalDataResponse;
import com.aliyun.teaopenapi.models.Config;
public static void main(String[] args) throws Exception {
// Alibaba Cloud アカウントの AccessKey は、すべての API へのフルアクセス権限を持っています。API の呼び出しや日常の O&M には、Resource Access Management (RAM) ユーザーを使用することを推奨します。
// AccessKey の漏洩を防ぎ、リソースを保護するため、AccessKey ID と AccessKey Secret をプロジェクトコードに保存しないでください。
// この例では、AccessKey ID と AccessKey Secret を環境変数に保存する方法を示します。必要に応じて、設定ファイルに保存することもできます。
Config config = new Config();
// 必須。ご利用の AccessKey ID。
config.setAccessKeyId(System.getenv("MPAAS_AK_ENV"));
// 必須。ご利用の AccessKey Secret。
config.setAccessKeySecret(System.getenv("MPAAS_SK_ENV"));
// mPaaS の REGION_ID とエンドポイント。この例では、杭州の非金融リージョンを使用します。
config.setRegionId("cn-hangzhou");
config.setEndpoint("mpaas.cn-hangzhou.aliyuncs.com");
Client client = new Client(config);
CreateOpenGlobalDataRequest globalRequest = new CreateOpenGlobalDataRequest();
//*************必須プロパティ*************/
// mPaaS コンソールから取得した App ID。
globalRequest.setAppId("BE9C457161429");
// mPaaS コンソールから取得したワークスペース ID。
globalRequest.setWorkspaceId("sit");
// mPaaS コンソールのモバイル同期で設定された同期 ID。
globalRequest.setBizType("test-global");
// 実際のビジネスメッセージ本文。カスタム長は 4,096 文字を超えることはできません。
globalRequest.setPayload("testtestata");
// ビジネス ID。一意である必要があり、長さは 100 文字を超えることはできません。
globalRequest.setThirdMsgId("test_third_msg_id_" + System.currentTimeMillis());
//************オプションプロパティ*************/
// ターゲットデバイスの OS。有効値:iOS および Android。空のままにすると、OS は制限されません。
globalRequest.setOsType("IOS");
// 最小クライアントバージョン番号 (例: 8.6.0.0.9999)。空のままにすると、最小バージョンは制限されません。
globalRequest.setAppMinVersion("0.0.0.0");
// 最大クライアントバージョン番号 (例: 9.0.0.0.9999)。空のままにすると、最大バージョンは制限されません。
globalRequest.setAppMaxVersion("100.100.100.100");
// 最大 UID。
globalRequest.setMaxUid(Long.valueOf(99));
// 最小 UID。
globalRequest.setMinUid(Long.valueOf(1));
// プッシュ先のグレースケール UID (00 から 99)。これは文字列配列です。
globalRequest.setUids("01,02,99");
globalRequest.setValidTimeStart(System.currentTimeMillis());
globalRequest.setValidTimeEnd(System.currentTimeMillis() + (1000 * 3600));
CreateOpenGlobalDataResponse openGlobalData = client.createOpenGlobalData(globalRequest);
System.out.println("response==>"+JSON.toJSONString(openGlobalData));
}ご利用の AccessKey に `AliyunMPAASFullAccess` 権限があることを確認してください。詳細については、「RAM アカウントのアプリケーションレベルのアクセス制御」をご参照ください。