Todos os produtos
Search
Central de documentação

Mobile Platform as a Service:Conexão com o Java SDK

Última atualização: Jun 28, 2026

Integre o Mobile Sync Service (MSS) no lado do servidor usando o Java SDK para enviar dados a usuários específicos, dispositivos ou todos os dispositivos.

Importe o pacote JAR

Após configurar o Maven, adicione as seguintes dependências ao arquivo principal pom.xml:

Nota

Para usuários fora da zona financeira, a versão mais recente do Message Push V2.0 SDK é 5.0.2. Para usuários na zona financeira, a versão mais recente do 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>

Configure as variáveis de ambiente

Configure as variáveis de ambiente MPAAS_AK_ENV e MPAAS_SK_ENV.

  • No Linux e macOS, execute os seguintes comandos:

    export MPAAS_AK_ENV=<access_key_id>
    export MPAAS_SK_ENV=<access_key_secret>
    Nota

    Substitua access_key_id pelo seu AccessKey ID e access_key_secret pelo seu AccessKey secret.

  • Configuração no Windows

    1. Crie as variáveis de ambiente MPAAS_AK_ENV e MPAAS_SK_ENV. Defina os valores como seu AccessKey ID e AccessKey secret.

    2. Reinicie o Windows.

Referência da API

API de sincronização única de dados

Esta API envia dados para um usuário ou dispositivo específico.

Descrição dos parâmetros

A tabela a seguir descreve os parâmetros.

Nome

Tipo

Obrigatório

Exemplo

Descrição

appId

String

Sim

ONEX570DA892117

O ID do aplicativo obtido no console mPaaS.

workspaceId

String

Sim

PROD

O ID do workspace obtido no console mPaaS.

bizType

String

Sim

UCHAT

A identidade de sincronização configurada no console mPaaS. Para mais informações, consulte Visão geral do console.

linkToken

String

Sim

O ID do destino de envio. Insira um ID de usuário para envios baseados em usuário ou um ID de dispositivo para envios baseados em dispositivo.

payload

String

Sim

testtestatapalayd

O corpo da mensagem de negócio. O formato é personalizável. Comprimento máximo: 4.096 caracteres.

thirdMsgId

String

Sim

1760339273

Um ID de solicitação único dentro da mesma identidade de sincronização. IDs duplicados são ignorados. Deve ter menos de 100 bytes.

osType

String

Não

iOS/Android

Filtra os envios por plataforma móvel. Se não especificado, os dados são enviados tanto para iOS quanto para Android.

appMinVersion

String

Não

0.0.0.0

Versão mínima do cliente para filtragem de envio. Os dados são enviados apenas para clientes nesta versão ou superior.

appMaxVersion

String

Não

100.100.100.100

Versão máxima do cliente para filtragem de envio. Os dados são enviados apenas para clientes nesta versão ou inferior.

validTimeStart

String

Não

1584448493913

Os dados são enviados somente quando a hora atual for maior ou igual a validTimeStart.

validTimeEnd

String

Não

1584452093913

Os dados são enviados somente quando a hora atual for menor ou igual a validTimeEnd.

Códigos de resultado para sincronização única de dados

Código de resultado

Descrição

Solução

SUCCESS

Sucesso

Sucesso

ARGS_IS_NULL

Um parâmetro obrigatório está vazio.

Verifique se todos os parâmetros obrigatórios foram fornecidos.

PAYLOAD_LONG

O payload da mensagem é muito longo.

Confirme que o comprimento do parâmetro payload não excede o limite.

THIRD_MSG_ID_LONG

O ID de negócio de terceiros é muito longo.

Valide se o tamanho do ID de negócio de terceiros respeita o limite permitido.

BIZ_NOT_ONLINE

A identidade de sincronização para o cenário de negócio não foi publicada.

Acesse o console mPaaS > Data Synchronization. Verifique se a identidade de sincronização correspondente a bizType está configurada e publicada.

THIRD_MSG_ID_IS_NULL

O ID de negócio de terceiros está vazio.

Certifique-se de que o ID de negócio de terceiros não esteja vazio.

SYSTEM_ERROR

Ocorreu um erro de sistema.

Entre em contato com o suporte técnico para identificar a causa do erro.

INVALID_TENANT_ID

O ID do tenant é inválido.

Verifique se o appId está correto e se você tem permissão para usá-lo.

Exemplo de código

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 {
    // An Alibaba Cloud account AccessKey has full access to all APIs. We recommend that you use a Resource Access Management (RAM) user for API calls and routine O&M.
    // To prevent AccessKey leaks and protect your resources, do not store your AccessKey ID and AccessKey secret in your project code.
    // This example shows how to store the AccessKey ID and AccessKey secret in environment variables. You can also store them in a configuration file as needed.
    Config config = new Config();
    // Required. Your AccessKey ID.
    config.setAccessKeyId(System.getenv("MPAAS_AK_ENV"));
    // Required. Your AccessKey secret.
    config.setAccessKeySecret(System.getenv("MPAAS_SK_ENV"));
    // The REGION_ID and Endpoint of mPaaS. This example uses a non-finance region in Hangzhou.
    config.setRegionId("cn-hangzhou");
    config.setEndpoint("mpaas.cn-hangzhou.aliyuncs.com");
    Client client = new Client(config);

    CreateOpenSingleDataRequest singleRequest = new CreateOpenSingleDataRequest();
    //*************Required properties*************/
    
    // The App ID obtained from the mPaaS console.
    singleRequest.setAppId("xxxxxxx");
    // The Workspace ID obtained from the mPaaS console.
    singleRequest.setWorkspaceId("xxxxxxxx");
    // The synchronization identity configured in Mobile Sync in the mPaaS console.
    singleRequest.setBizType("TEST-SYNC");
    // The ID of the user or device (UTDID) to push to.
    singleRequest.setLinkToken("testUserId");
    // The actual business message body. The custom length cannot exceed 4,096 characters.
    singleRequest.setPayload("testPayload");
    // The business ID. It must be unique and cannot exceed 100 characters in length.
    singleRequest.setThirdMsgId("test_third_msg_id_" + System.currentTimeMillis());

    //************Optional properties*************/
    
    // The OS of the target device. Valid values: iOS and Android. If left empty, the OS is not restricted.
    singleRequest.setOsType("IOS");
    // The minimum client version number, such as 8.6.0.0.9999. If left empty, the minimum version is not restricted.
    singleRequest.setAppMinVersion("0.0.0.0");
    // The maximum client version number, such as 9.0.0.0.9999. If left empty, the maximum version is not restricted.
    singleRequest.setAppMaxVersion("100.100.100.100");
    // The start of the validity period. If left empty, the start time is not restricted.
    singleRequest.setValidTimeStart(System.currentTimeMillis());
    // The end of the validity period. If left empty, the end time is not restricted. The maximum validity period is 30 days.
    singleRequest.setValidTimeEnd(System.currentTimeMillis() + (1000 * 3600));

    CreateOpenSingleDataResponse openSingleData = client.createOpenSingleData(singleRequest);
    System.out.println("response==>"+JSON.toJSONString(openSingleData));
}
Importante

Certifique-se de que seu AccessKey tenha a permissão AliyunMPAASFullAccess. Para mais informações, consulte Controle de acesso no nível de aplicação para contas RAM.

API de sincronização global de dados

A sincronização global envia dados para todos os dispositivos.

Descrição dos parâmetros

A tabela a seguir descreve os parâmetros.

Nome

Tipo

Obrigatório

Exemplo

Descrição

appId

String

Sim

ONEX570DA892117

O ID do aplicativo obtido no console mPaaS.

workspaceId

String

Sim

PROD

O ID do workspace obtido no console mPaaS.

bizType

String

Sim

UCHAT

A identidade de sincronização configurada no console mPaaS. Para mais informações, consulte Visão geral do console.

payload

String

Sim

testtestatapalayd

O corpo da mensagem de negócio. O formato é personalizável. Comprimento máximo: 4.096 caracteres.

thirdMsgId

String

Sim

1760339273

Um ID de solicitação único dentro da mesma identidade de sincronização. IDs duplicados são ignorados. Deve ter menos de 100 bytes.

osType

String

Não

IOS/ANDROID/HARMONY

IOS/ANDROID

Filtra os envios por plataforma móvel. Se não especificado, os dados são enviados para iOS, Android e HarmonyOS.

Filtra os envios por plataforma móvel. Se não especificado, os dados são enviados tanto para iOS quanto para Android.

appMinVersion

String

Não

0.0.0.0

Versão mínima do cliente para filtragem de envio. Os dados são enviados apenas para clientes nesta versão ou superior.

appMaxVersion

String

Não

100.100.100.100

Versão máxima do cliente para filtragem de envio. Os dados são enviados apenas para clientes nesta versão ou inferior.

validTimeStart

String

Não

1584448493913

Os dados são enviados somente quando a hora atual for maior ou igual a validTimeStart.

validTimeEnd

String

Não

1584452093913

Os dados são enviados somente quando a hora atual for menor ou igual a validTimeEnd.

maxUid

Long

Não

99

O UID máximo para o intervalo de sincronização (segundo e terceiro dígitos, contados de trás para frente, do ID de usuário ou ID de dispositivo). Se os dígitos não forem letras, converta-os para códigos ASCII.

minUid

Long

Não

00

O UID mínimo para o intervalo de sincronização (segundo e terceiro dígitos, contados de trás para frente, do ID de usuário ou ID de dispositivo). Se os dígitos não forem letras, converta-os para códigos ASCII.

uids

String

Não

01,02,99

Substitui maxUid e minUid. Especifica segmentos discretos de ID de usuário (segundo e terceiro dígitos, contados de trás para frente, do ID de usuário ou ID de dispositivo). Se os dígitos não forem letras, converta-os para códigos ASCII.

Códigos de resultado para sincronização global de dados

Código de resultado

Descrição

Solução

SUCCESS

Sucesso

Sucesso

ARGS_IS_NULL

Um parâmetro obrigatório está vazio.

Verifique se todos os parâmetros obrigatórios foram fornecidos.

PAYLOAD_LONG

O payload da mensagem é muito longo.

Confirme que o comprimento do parâmetro payload não excede o limite.

THIRD_MSG_ID_LONG

O ID de negócio de terceiros é muito longo.

Valide se o tamanho do ID de negócio de terceiros respeita o limite permitido.

BIZ_NOT_ONLINE

A identidade de sincronização para o cenário de negócio não foi publicada.

Acesse o console mPaaS > Data Synchronization. Verifique se a identidade de sincronização correspondente a bizType está configurada e publicada.

THIRD_MSG_ID_IS_NULL

O ID de negócio de terceiros está vazio.

Certifique-se de que o ID de negócio de terceiros não esteja vazio.

SYSTEM_ERROR

Ocorreu um erro de sistema.

Entre em contato com o suporte técnico para identificar a causa do erro.

NOT_SUPPORT_GLOBAL

A identidade de sincronização não suporta chamadas globais.

Acesse o console mPaaS > Data Synchronization. Verifique se a identidade de sincronização correspondente ao BizType está configurada para envio a um usuário ou dispositivo específico.

INVALID_TENANT_ID

O ID do tenant é inválido.

Verifique se o appId está correto e se você tem permissão para usá-lo.

Exemplo de código

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 {
    // An Alibaba Cloud account AccessKey has full access to all APIs. We recommend that you use a Resource Access Management (RAM) user for API calls and routine O&M.
    // To prevent AccessKey leaks and protect your resources, do not store your AccessKey ID and AccessKey secret in your project code.
    // This example shows how to store the AccessKey ID and AccessKey secret in environment variables. You can also store them in a configuration file as needed.
    Config config = new Config();
    // Required. Your AccessKey ID.
    config.setAccessKeyId(System.getenv("MPAAS_AK_ENV"));
    // Required. Your AccessKey secret.
    config.setAccessKeySecret(System.getenv("MPAAS_SK_ENV"));
    // The REGION_ID and Endpoint of mPaaS. This example uses a non-finance region in Hangzhou.
    config.setRegionId("cn-hangzhou");
    config.setEndpoint("mpaas.cn-hangzhou.aliyuncs.com");
    Client client = new Client(config);

    CreateOpenGlobalDataRequest globalRequest = new CreateOpenGlobalDataRequest();
    //*************Required properties*************/

    // The App ID obtained from the mPaaS console.
    globalRequest.setAppId("BE9C457161429");
    // The Workspace ID obtained from the mPaaS console.
    globalRequest.setWorkspaceId("sit");
    // The synchronization identity configured in Mobile Sync in the mPaaS console.
    globalRequest.setBizType("test-global");
    // The actual business message body. The custom length cannot exceed 4,096 characters.
    globalRequest.setPayload("testtestata");
    // The business ID. It must be unique and cannot exceed 100 characters in length.
    globalRequest.setThirdMsgId("test_third_msg_id_" + System.currentTimeMillis());

    //************Optional properties*************/

    // The OS of the target device. Valid values: iOS and Android. If left empty, the OS is not restricted.
    globalRequest.setOsType("IOS");
    // The minimum client version number, such as 8.6.0.0.9999. If left empty, the minimum version is not restricted.
    globalRequest.setAppMinVersion("0.0.0.0");
    // The maximum client version number, such as 9.0.0.0.9999. If left empty, the maximum version is not restricted.

    globalRequest.setAppMaxVersion("100.100.100.100");
    // The maximum UID.
    globalRequest.setMaxUid(Long.valueOf(99));
    // The minimum UID.
    globalRequest.setMinUid(Long.valueOf(1));
    // The grayscale UIDs to push to, from 00 to 99. This is a string array.
    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));
}
Importante

Certifique-se de que seu AccessKey tenha a permissão AliyunMPAASFullAccess. Para mais informações, consulte Controle de acesso no nível de aplicação para contas RAM.