阿里云移动开发平台mPaaS全局数据同步接口

接口说明

同步一条数据至全网(所有)用户或设备。推送数据将持久化至数据库(配置数据持久化操作请参见 管理控制台)。因成本、收益和风险权衡,推送数据将不会立即同步当前应用在前台的用户,而是在应用下一次到前台时,由 MSS 客户端 SDK 触发同步。

接口 URL 示例

    1.     http://11.160.18.15/webapi/sync/global?instanceId=sit_320C94C171133
  • IP(域名)地址:请替换成现场部署的 MSS 服务器 IP 配置。
  • instanceID:组成结构为 workspaceId_AppId,instanceID 为 MSS 上用于 APP 数据逻辑隔离的核心属性。

代码示例

  1. import com.alibaba.fastjson.JSON;
  2. import net.sf.json.JSONObject;
  3. import org.apache.commons.httpclient.HttpStatus;
  4. import org.apache.http.client.methods.CloseableHttpResponse;
  5. import org.apache.http.client.methods.HttpPost;
  6. import org.apache.http.entity.StringEntity;
  7. import org.apache.http.impl.client.CloseableHttpClient;
  8. import org.apache.http.impl.client.HttpClients;
  9. import org.apache.http.util.EntityUtils;
  10. /**
  11. * 全局推送,使用httpclinet模拟post请求发送到指定服务器(只需要修改apiURL中的服务 器ip地址即可)
  12. */
  13. public class GlobalTest {
  14. private static String apiURL = "http://11.160.18.15/webapi/sync/global?instanceId=default_99FB626081956";
  15. /**
  16. * post请求
  17. *
  18. * @param url String
  19. * @param json JSONObject
  20. * @return JSONObject
  21. */
  22. private static JSONObject doPost(String url, JSONObject json) {
  23. CloseableHttpClient httpclient = HttpClients.createDefault();
  24. HttpPost httpPost = new HttpPost(url);
  25. JSONObject response = null;
  26. try {
  27. StringEntity s = new StringEntity(json.toString());
  28. StringEntity s = new StringEntity(json.toString(),"UTF-8");
  29. s.setContentEncoding("UTF-8");
  30. //发送json数据需要设置contentType
  31. s.setContentType("application/json");
  32. httpPost.setEntity(s);
  33. //httpPost.set
  34. CloseableHttpResponse res = httpclient.execute(httpPost);
  35. if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
  36. // 返回json格式:
  37. String result = EntityUtils.toString(res.getEntity());
  38. response = JSONObject.fromObject(result);
  39. }
  40. } catch (Exception e) {
  41. throw new RuntimeException(e);
  42. }
  43. return response;
  44. }
  45. public static void main(String arg[]) {
  46. JSONObject params = new JSONObject();
  47. //bizType
  48. params.put("bizType", "GLOBAL-SDK-CONFIG");
  49. //消息体,原样透传至客户端
  50. JSONObject payload = new JSONObject();
  51. payload.put("switchName", "showImage");
  52. payload.put("switchValue", true);
  53. //String格式
  54. params.put("payload", JSON.toJSONString(payload));
  55. //业务ID,可包含业务规则,长度不超过100,本DEMO为随机一个值
  56. Double i = Math.random() * 1000000;
  57. String[] num = i.toString().split("\\.");
  58. params.put("thirdMsgId", "test_third_msg_id_" + num[0] + System.currentTimeMillis());
  59. //IOS or ANDROID,不限制时勿传
  60. params.put("osType", "IOS");
  61. //可支持的最小客户端版本,不限制时勿传
  62. params.put("appMinVersion", "0.0.0.0");
  63. //可支持的最大客户端版本,不限制时勿传
  64. params.put("appMaxVersion", "100.100.100.100");
  65. //当前时间
  66. long today = System.currentTimeMillis();
  67. //有效期30天
  68. long validTimeEnd = today + 30 * 24 * 60 * 60 * 1000L;
  69. //有效期
  70. params.put("validTimeEnd", validTimeEnd);
  71. //提交Post请求
  72. JSONObject ret = doPost(apiURL, params);
  73. System.out.println(ret);
  74. }
  75. }

请求参数

参数名称 是否必填 数据类型 最大长度 说明
bizType String 30 业务场景标识:在 mPaaS 控制台上进行推送配置时设置的 同步标识,详细操作请参见 管理控制台。
payload String 4096 推送的数据,为文本字符串或 Josn 字符串,与 binaryPayload 二选一,不可都为空。
thirdMsgId String 100 一次数据同步请求 ID,由业务方自定义,用于数据关联和幂等控制。bizType + linkToken + thirdMsgId 需唯一,重复时,保留前一次接口调用成功时的数据,抛弃新数据,接口返回调用成功。
binaryPayload String 4096 推送的数据,由原始 byte 数组经过 base64 编码后生成的字符串,与 payload 二选一,不可都为空。
osType String 10 指定消息推送的客户端操作系统类型,(iOS / Android),不限制操作系统类型时,留空。
appMinVersion String 20 支持的最小客户端版本号【包含】,仅推送至大于等于该版本的客户端。例如:8.6.0.9999 ,强烈建议使用标准格式的版本号。
appMaxVersion String 20 支持的最大客户端版本号【包含】,仅推送至小于等于该版本的客户端。如:9.0.0.9999 ,强烈建议使用标准格式的版本号。
validTimeEnd long 13 推送有效期结束时间,过期后,MSS 服务端将不再推送过期数据至客户端。格式: (new Date()).getTime();

返回参数

返回数据为 JOSN 格式,示例代码如下:

  1. {
  2. "msg": "SUCCESS",
  3. "success": true
  4. }

各属性含义及解释

名称 类型 示例 说明
success boolean true / false 业务调用结果,成功返回 true,失败返回 false。失败的情况下,可通过 msg 查看失败原因,参考下表 结果码。
msg String SUCCESS 结果码。

结果码

结果 结果码 含义
true SUCCESS 业务成功 – 在线推送成功
true DUPLICATED_BIZ_ID bizId 重复,业务成功
false THIRDMSGID_IS_NULL thirdMsgId 为空
false BIZ_NOT_ONLINE 同步配置未提交上线
false ARGS_IS_NULL 请求必选参数为空
false NOT_SUPPORT_GLOBAL 接口不支持全局业务
false PAYLOAD_LONG 消息体超长
false THIRD_MSG_ID_LONG 第三方消息过长
false SYSTEM_ERROR 系统异常

原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/34206.html

发表评论

登录后才能评论