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

Mobile Platform as a Service:Java SDK を使用した接続

最終更新日:Jan 20, 2026

このトピックでは、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 システムの構成

    1. MPAAS_AK_ENV および MPAAS_SK_ENV 環境変数を作成します。それらの値をご利用の AccessKey ID と AccessKey Secret に設定します。

    2. 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 アカウントのアプリケーションレベルのアクセス制御」をご参照ください。