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:
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>NotaSubstitua
access_key_idpelo seu AccessKey ID eaccess_key_secretpelo seu AccessKey secret. -
Configuração no Windows
Crie as variáveis de ambiente MPAAS_AK_ENV e MPAAS_SK_ENV. Defina os valores como seu AccessKey ID e AccessKey secret.
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 |
|
validTimeEnd |
String |
Não |
1584452093913 |
Os dados são enviados somente quando a hora atual for menor ou igual a |
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 |
|
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));
}
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 |
|
validTimeEnd |
String |
Não |
1584452093913 |
Os dados são enviados somente quando a hora atual for menor ou igual a |
|
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 |
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 |
|
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 |
|
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));
}
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.