接口说明
同步一条数据至全网(所有)用户或设备。推送数据将持久化至数据库(配置数据持久化操作请参见 管理控制台)。因成本、收益和风险权衡,推送数据将不会立即同步当前应用在前台的用户,而是在应用下一次到前台时,由 MSS 客户端 SDK 触发同步。
接口 URL 示例
-
-
http://11.160.18.15/webapi/sync/global?instanceId=sit_320C94C171133
-
- IP(域名)地址:请替换成现场部署的 MSS 服务器 IP 配置。
- instanceID:组成结构为 workspaceId_AppId,
instanceID
为 MSS 上用于 APP 数据逻辑隔离的核心属性。
代码示例
import com.alibaba.fastjson.JSON;
import net.sf.json.JSONObject;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
/**
* 全局推送,使用httpclinet模拟post请求发送到指定服务器(只需要修改apiURL中的服务 器ip地址即可)
*/
public class GlobalTest {
private static String apiURL = "http://11.160.18.15/webapi/sync/global?instanceId=default_99FB626081956";
/**
* post请求
*
* @param url String
* json JSONObject
* @return JSONObject
*/
private static JSONObject doPost(String url, JSONObject json) {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
JSONObject response = null;
try {
StringEntity s = new StringEntity(json.toString());
StringEntity s = new StringEntity(json.toString(),"UTF-8");
s.setContentEncoding("UTF-8");
//发送json数据需要设置contentType
s.setContentType("application/json");
httpPost.setEntity(s);
//httpPost.set
CloseableHttpResponse res = httpclient.execute(httpPost);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
// 返回json格式:
String result = EntityUtils.toString(res.getEntity());
response = JSONObject.fromObject(result);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return response;
}
public static void main(String arg[]) {
JSONObject params = new JSONObject();
//bizType
params.put("bizType", "GLOBAL-SDK-CONFIG");
//消息体,原样透传至客户端
JSONObject payload = new JSONObject();
payload.put("switchName", "showImage");
payload.put("switchValue", true);
//String格式
params.put("payload", JSON.toJSONString(payload));
//业务ID,可包含业务规则,长度不超过100,本DEMO为随机一个值
Double i = Math.random() * 1000000;
String[] num = i.toString().split("\\.");
params.put("thirdMsgId", "test_third_msg_id_" + num[0] + System.currentTimeMillis());
//IOS or ANDROID,不限制时勿传
params.put("osType", "IOS");
//可支持的最小客户端版本,不限制时勿传
params.put("appMinVersion", "0.0.0.0");
//可支持的最大客户端版本,不限制时勿传
params.put("appMaxVersion", "100.100.100.100");
//当前时间
long today = System.currentTimeMillis();
//有效期30天
long validTimeEnd = today + 30 * 24 * 60 * 60 * 1000L;
//有效期
params.put("validTimeEnd", validTimeEnd);
//提交Post请求
JSONObject ret = doPost(apiURL, params);
System.out.println(ret);
}
}
请求参数
参数名称 | 是否必填 | 数据类型 | 最大长度 | 说明 |
---|---|---|---|---|
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 格式,示例代码如下:
{
"msg": "SUCCESS",
"success": true
}
各属性含义及解释
名称 | 类型 | 示例 | 说明 |
---|---|---|---|
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