Topik ini menjelaskan cara mengintegrasikan MSS di sisi server menggunakan Java SDK.
Impor paket JAR
Setelah mengonfigurasi Maven, tambahkan dependensi berikut ke file pom.xml utama:
Untuk pengguna di luar zona keuangan, versi terbaru Message Push V2.0 SDK adalah 5.0.2. Untuk pengguna di zona keuangan, versi terbaru Message Push V2.0 SDK adalah 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>Konfigurasikan variabel lingkungan
Konfigurasikan variabel lingkungan MPAAS_AK_ENV dan MPAAS_SK_ENV.
Untuk Linux dan macOS, jalankan perintah berikut:
export MPAAS_AK_ENV=<access_key_id> export MPAAS_SK_ENV=<access_key_secret>CatatanGanti
access_key_iddengan ID AccessKey Anda danaccess_key_secretdengan Rahasia AccessKey Anda.Konfigurasi sistem Windows
Buat variabel lingkungan MPAAS_AK_ENV dan MPAAS_SK_ENV, lalu atur nilainya ke ID AccessKey dan Rahasia AccessKey Anda.
Mulai ulang Windows.
Referensi API
API sinkronisasi data tunggal
API sinkronisasi data tunggal menyinkronkan data ke pengguna atau perangkat tertentu.
Deskripsi parameter
Parameter tersebut adalah sebagai berikut:
Nama | Tipe | Wajib | Contoh | Deskripsi |
appId | String | Ya | ONEX570DA892117 | ID Aplikasi yang diperoleh dari Konsol mPaaS. |
workspaceId | String | Ya | PROD | ID Ruang Kerja yang diperoleh dari Konsol mPaaS. |
bizType | String | Ya | UCHAT | Identitas sinkronisasi yang dikonfigurasi di Konsol mPaaS. Untuk informasi selengkapnya, lihat Ikhtisar konsol. |
linkToken | String | Ya | ID target dorong. Jika Anda mendorong data berdasarkan pengguna, masukkan ID pengguna. Jika sinkronisasi dikonfigurasi untuk mendorong data berdasarkan perangkat, masukkan ID perangkat. | |
payload | String | Ya | testtestatapalayd | Isi pesan bisnis aktual. Formatnya dapat disesuaikan. Panjangnya tidak boleh melebihi 4.096 karakter. |
thirdMsgId | String | Ya | 1760339273 | ID permintaan sinkronisasi data. ID harus unik dalam identitas sinkronisasi yang sama. Permintaan dengan ID duplikat akan diabaikan. ID harus kurang dari 100 byte. |
osType | String | Tidak | iOS/Android | Menyaring dorongan berdasarkan platform seluler. Secara default, parameter ini tidak dilewatkan, dan tidak ada penyaringan yang dilakukan. Data didorong ke platform iOS dan Android. |
appMinVersion | String | Tidak | 0.0.0.0 | Menyaring dorongan berdasarkan versi client. Data hanya didorong ke client dengan nomor versi lebih besar dari atau sama dengan nilai ini. |
appMaxVersion | String | Tidak | 100.100.100.100 | Menyaring dorongan berdasarkan versi client. Data hanya didorong ke client dengan nomor versi kurang dari atau sama dengan nilai ini. |
validTimeStart | String | Tidak | 1584448493913 | Data hanya didorong ketika waktu saat ini lebih besar dari atau sama dengan `validTimeStart`. |
validTimeEnd | String | Tidak | 1584452093913 | Data hanya didorong ketika waktu saat ini kurang dari atau sama dengan `validTimeEnd`. |
Kode hasil untuk sinkronisasi data tunggal
Kode hasil | Deskripsi | Solusi |
SUCCESS | Berhasil | Berhasil |
ARGS_IS_NULL | Parameter yang diperlukan kosong. | Periksa bahwa semua parameter yang diperlukan telah disediakan. |
PAYLOAD_LONG | Muatan pesan terlalu panjang. | Periksa bahwa panjang parameter payload tidak melebihi batas. |
THIRD_MSG_ID_LONG | ID bisnis pihak ketiga terlalu panjang. | Periksa bahwa panjang ID bisnis pihak ketiga tidak melebihi batas. |
BIZ_NOT_ONLINE | Identitas sinkronisasi untuk skenario bisnis belum dipublikasikan. | Buka Konsol mPaaS > Sinkronisasi Data. Periksa apakah identitas sinkronisasi yang sesuai dengan `bizType` telah dikonfigurasi dan dipublikasikan. |
THIRD_MSG_ID_IS_NULL | ID bisnis pihak ketiga kosong. | Periksa bahwa ID bisnis pihak ketiga tidak kosong. |
SYSTEM_ERROR | Terjadi kesalahan sistem. | Hubungi dukungan teknis untuk mengidentifikasi penyebab kesalahan. |
INVALID_TENANT_ID | ID penyewa tidak valid. | Periksa bahwa appId benar dan Anda memiliki izin untuk menggunakannya. |
Contoh kode
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 {
// AccessKey Akun Alibaba Cloud memiliki akses penuh ke semua API. Kami menyarankan Anda menggunakan pengguna Resource Access Management (RAM) untuk panggilan API dan O&M rutin.
// Untuk mencegah kebocoran AccessKey dan melindungi resource Anda, jangan simpan ID AccessKey dan Rahasia AccessKey Anda dalam kode proyek.
// Contoh ini menunjukkan cara menyimpan ID AccessKey dan Rahasia AccessKey dalam variabel lingkungan. Anda juga dapat menyimpannya dalam file konfigurasi sesuai kebutuhan.
Config config = new Config();
// Wajib. ID AccessKey Anda.
config.setAccessKeyId(System.getenv("MPAAS_AK_ENV"));
// Wajib. Rahasia AccessKey Anda.
config.setAccessKeySecret(System.getenv("MPAAS_SK_ENV"));
// REGION_ID dan Endpoint mPaaS. Contoh ini menggunakan wilayah non-keuangan di Hangzhou.
config.setRegionId("cn-hangzhou");
config.setEndpoint("mpaas.cn-hangzhou.aliyuncs.com");
Client client = new Client(config);
CreateOpenSingleDataRequest singleRequest = new CreateOpenSingleDataRequest();
//*************Properti wajib*************/
// ID Aplikasi yang diperoleh dari Konsol mPaaS.
singleRequest.setAppId("xxxxxxx");
// ID Ruang Kerja yang diperoleh dari Konsol mPaaS.
singleRequest.setWorkspaceId("xxxxxxxx");
// Identitas sinkronisasi yang dikonfigurasi di Mobile Sync di Konsol mPaaS.
singleRequest.setBizType("TEST-SYNC");
// ID pengguna atau perangkat (UTDID) yang dituju.
singleRequest.setLinkToken("testUserId");
// Isi pesan bisnis aktual. Panjang kustom tidak boleh melebihi 4.096 karakter.
singleRequest.setPayload("testPayload");
// ID bisnis. Harus unik dan tidak boleh melebihi 100 karakter.
singleRequest.setThirdMsgId("test_third_msg_id_" + System.currentTimeMillis());
//************Properti opsional*************/
// OS perangkat target. Nilai yang valid: iOS dan Android. Jika dikosongkan, OS tidak dibatasi.
singleRequest.setOsType("IOS");
// Nomor versi client minimum, seperti 8.6.0.0.9999. Jika dikosongkan, versi minimum tidak dibatasi.
singleRequest.setAppMinVersion("0.0.0.0");
// Nomor versi client maksimum, seperti 9.0.0.0.9999. Jika dikosongkan, versi maksimum tidak dibatasi.
singleRequest.setAppMaxVersion("100.100.100.100");
// Awal periode validitas. Jika dikosongkan, waktu mulai tidak dibatasi.
singleRequest.setValidTimeStart(System.currentTimeMillis());
// Akhir periode validitas. Jika dikosongkan, waktu akhir tidak dibatasi. Periode validitas maksimum adalah 30 hari.
singleRequest.setValidTimeEnd(System.currentTimeMillis() + (1000 * 3600));
CreateOpenSingleDataResponse openSingleData = client.createOpenSingleData(singleRequest);
System.out.println("response==>"+JSON.toJSONString(openSingleData));
}Pastikan AccessKey Anda memiliki izin `AliyunMPAASFullAccess`. Untuk informasi selengkapnya, lihat Kontrol akses tingkat aplikasi untuk akun RAM.
API sinkronisasi data global
Sinkronisasi data global menyinkronkan data ke semua perangkat.
Deskripsi parameter
Berikut adalah parameter bisnisnya:
Nama | Tipe | Wajib | Contoh | Deskripsi |
appId | String | Ya | ONEX570DA892117 | ID Aplikasi yang diperoleh dari Konsol mPaaS. |
workspaceId | String | Ya | PROD | ID Ruang Kerja yang diperoleh dari Konsol mPaaS. |
bizType | String | Ya | UCHAT | Identitas sinkronisasi yang dikonfigurasi di Konsol mPaaS. Untuk informasi selengkapnya, lihat Ikhtisar konsol. |
payload | String | Ya | testtestatapalayd | Isi pesan bisnis aktual. Formatnya dapat disesuaikan. Panjangnya tidak boleh melebihi 4.096 karakter. |
thirdMsgId | String | Ya | 1760339273 | ID permintaan sinkronisasi data. ID harus unik dalam identitas sinkronisasi yang sama. Permintaan dengan ID duplikat akan diabaikan. ID harus kurang dari 100 byte. |
osType | String | Tidak | IOS/ANDROID | Menyaring dorongan berdasarkan platform seluler. Secara default, parameter ini tidak dilewatkan, dan tidak ada penyaringan yang dilakukan. Data didorong ke platform iOS dan Android. |
appMinVersion | String | Tidak | 0.0.0.0 | Menyaring dorongan berdasarkan versi client. Data hanya didorong ke client dengan nomor versi lebih besar dari atau sama dengan nilai ini. |
appMaxVersion | String | Tidak | 100.100.100.100 | Menyaring dorongan berdasarkan versi client. Data hanya didorong ke client dengan nomor versi kurang dari atau sama dengan nilai ini. |
validTimeStart | String | Tidak | 1584448493913 | Data hanya didorong ketika waktu saat ini lebih besar dari atau sama dengan `validTimeStart`. |
validTimeEnd | String | Tidak | 1584452093913 | Data hanya didorong ketika waktu saat ini kurang dari atau sama dengan `validTimeEnd`. |
maxUid | Long | Tidak | 99 | UID maksimum untuk rentang sinkronisasi (digit kedua dan ketiga dari belakang ID pengguna atau ID perangkat). Jika digit tersebut bukan huruf, ubah ke kode ASCII. |
minUid | Long | Tidak | 00 | UID minimum untuk rentang sinkronisasi (digit kedua dan ketiga dari belakang ID pengguna atau ID perangkat). Jika digit tersebut bukan huruf, ubah ke kode ASCII. |
uids | String | Tidak | 01,02,99 | Parameter ini memiliki prioritas lebih tinggi daripada `maxUid` dan `minUid`. Menentukan segmen ID pengguna diskret (digit kedua dan ketiga dari belakang ID pengguna atau ID perangkat). Jika digit tersebut bukan huruf, ubah ke kode ASCII. |
Kode hasil untuk sinkronisasi data global
Kode hasil | Deskripsi | Solusi |
SUCCESS | Berhasil | Berhasil |
ARGS_IS_NULL | Parameter yang diperlukan kosong. | Periksa bahwa semua parameter yang diperlukan telah disediakan. |
PAYLOAD_LONG | Muatan pesan terlalu panjang. | Periksa bahwa panjang parameter payload tidak melebihi batas. |
THIRD_MSG_ID_LONG | ID bisnis pihak ketiga terlalu panjang. | Periksa bahwa panjang ID bisnis pihak ketiga tidak melebihi batas. |
BIZ_NOT_ONLINE | Identitas sinkronisasi untuk skenario bisnis belum dipublikasikan. | Buka Konsol mPaaS > Sinkronisasi Data. Periksa apakah identitas sinkronisasi yang sesuai dengan `bizType` telah dikonfigurasi dan dipublikasikan. |
THIRD_MSG_ID_IS_NULL | ID bisnis pihak ketiga kosong. | Periksa bahwa ID bisnis pihak ketiga tidak kosong. |
SYSTEM_ERROR | Terjadi kesalahan sistem. | Hubungi dukungan teknis untuk mengidentifikasi penyebab kesalahan. |
NOT_SUPPORT_GLOBAL | Identitas sinkronisasi tidak mendukung panggilan global. | Buka Konsol mPaaS > Sinkronisasi Data. Periksa apakah identitas sinkronisasi yang sesuai dengan `BizType` dikonfigurasi untuk mendorong ke pengguna atau perangkat tertentu. |
INVALID_TENANT_ID | ID penyewa tidak valid. | Periksa bahwa appId benar dan Anda memiliki izin untuk menggunakannya. |
Contoh kode
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 {
// AccessKey Akun Alibaba Cloud memiliki akses penuh ke semua API. Kami menyarankan Anda menggunakan pengguna Resource Access Management (RAM) untuk panggilan API dan O&M rutin.
// Untuk mencegah kebocoran AccessKey dan melindungi resource Anda, jangan simpan ID AccessKey dan Rahasia AccessKey Anda dalam kode proyek.
// Contoh ini menunjukkan cara menyimpan ID AccessKey dan Rahasia AccessKey dalam variabel lingkungan. Anda juga dapat menyimpannya dalam file konfigurasi sesuai kebutuhan.
Config config = new Config();
// Wajib. ID AccessKey Anda.
config.setAccessKeyId(System.getenv("MPAAS_AK_ENV"));
// Wajib. Rahasia AccessKey Anda.
config.setAccessKeySecret(System.getenv("MPAAS_SK_ENV"));
// REGION_ID dan Endpoint mPaaS. Contoh ini menggunakan wilayah non-keuangan di Hangzhou.
config.setRegionId("cn-hangzhou");
config.setEndpoint("mpaas.cn-hangzhou.aliyuncs.com");
Client client = new Client(config);
CreateOpenGlobalDataRequest globalRequest = new CreateOpenGlobalDataRequest();
//*************Properti wajib*************/
// ID Aplikasi yang diperoleh dari Konsol mPaaS.
globalRequest.setAppId("BE9C457161429");
// ID Ruang Kerja yang diperoleh dari Konsol mPaaS.
globalRequest.setWorkspaceId("sit");
// Identitas sinkronisasi yang dikonfigurasi di Mobile Sync di Konsol mPaaS.
globalRequest.setBizType("test-global");
// Isi pesan bisnis aktual. Panjang kustom tidak boleh melebihi 4.096 karakter.
globalRequest.setPayload("testtestata");
// ID bisnis. Harus unik dan tidak boleh melebihi 100 karakter.
globalRequest.setThirdMsgId("test_third_msg_id_" + System.currentTimeMillis());
//************Properti opsional*************/
// OS perangkat target. Nilai yang valid: iOS dan Android. Jika dikosongkan, OS tidak dibatasi.
globalRequest.setOsType("IOS");
// Nomor versi client minimum, seperti 8.6.0.0.9999. Jika dikosongkan, versi minimum tidak dibatasi.
globalRequest.setAppMinVersion("0.0.0.0");
// Nomor versi client maksimum, seperti 9.0.0.0.9999. Jika dikosongkan, versi maksimum tidak dibatasi.
globalRequest.setAppMaxVersion("100.100.100.100");
// UID maksimum.
globalRequest.setMaxUid(Long.valueOf(99));
// UID minimum.
globalRequest.setMinUid(Long.valueOf(1));
// UID grayscale yang dituju, dari 00 hingga 99. Ini adalah array string.
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));
}Pastikan AccessKey Anda memiliki izin `AliyunMPAASFullAccess`. Untuk informasi selengkapnya, lihat Kontrol akses tingkat aplikasi untuk akun RAM.