搜索
分发文档
应用分发
游戏分发
电视应用分发
快应用分发
快游戏分发
服务分发
内容分发
分发文档/快游戏分发/运营指南/消息下发/消息订阅查询&消息下发
消息订阅查询&消息下发更新时间: 2025-07-17 15:42:00

一、已订阅用户查询接口

  • 接口说明:获取所有的已经订阅了游戏的用户列表,订阅数据到游戏内消息模板维度。
  • 接口路径:https://api-mini.s.migames.com/tgmanager/api/msg/listSubScribeSetting
  • 请求方式:POST
  • 数据格式:JSON
  • 请求参数
字段中文名类型是否必填说明
developerID开发者idLong开发者id
devAppID应用idLong开发者应用id
sign签名String
使用appKey、developerID、devAppID进行签名,签名规则见4.4.3
lastID记录idlong上次拉取到的最大recordID,首次拉取传0。
注意:recordID不一定连续。
举例:首次拉取时lastID=0,pageSize=10,拉取到recordID为1~10的数据;则第二次拉取时lastID=10,pageSize=10 则拉取到11~20的数据。
pageSize每页数量long每页数量,最大100,默认100,拉取到的数量<pageSize表示拉取完

  • 响应参数
    • 一级结构
字段中文名类型说明
code响应码Int0表示成功
msg错误信息string错误信息
data业务响应信息Object业务响应信息
traceID
响应id
string接口响应会返回内部生成的traceID

    • 二级结构-data
字段中文名类型说明
total总数long已订阅总数
list订阅用户List<Object>错误信息

    • 三级结构
字段中文名类型说明
recordID记录idlong记录id
openID用户idlong用户id
subscribeTemplateID已订阅的模板idList<long>已订阅的模板id

  • 接口示例
    • 请求示例
{
"developerID":${developerID},
"devAppID":"${devAppID}",
"lastID":0,
"pageSize": 100,
"sign":"${sign}"
}'
    • 响应示例
{
"code": 0,
"msg": "success",
"data":{
"total":100,
"list":[
{
"recordID":1,
"openID":"xxxxx",
"subscribeTemplateID":[1001,1002]
}
]
}
}

二、消息下发接口

  • 接口说明:通过消息下发接口下发消息,若配置的消息内容中包含了占位符(如{level},下发消息时可指定占位符的取值(如level=100)。
    • 注意:下发接口成功不代表实际消息下发成功。若下发的用户不存在或者用户未订阅游戏,则实际下发失败。若超过了平台规定的单游戏单用户下发限制数,则实际也会下发失败。
  • 接口路径: https://api-mini.s.migames.com/tgmanager/api/msg/sendMsg
  • 请求方式:POST
  • 数据格式:JSON
  • 请求参数
字段中文名类型是否必填说明
developerID开发者idLong开发者id
devAppID应用idLong开发者应用id
sign签名String
使用appKey、developerID、devAppID、templateID、contentID进行签名,签名规则见4.4.3
templateID消息模板idlong生效中的消息模板id
contentID消息内容idlong生效中的消息内容id
openIDs目标openid list<long>下发目标,单次最多100个
placeholderParams消息内容占位符 Map[String]String填充消息内容中配置的占位符

  • 响应参数
字段中文名类型说明
code响应码Int0表示成功
msg错误信息string错误提示信息
traceID
响应id
string接口响应会返回内部生成的traceID

  • 接口示例
    • 请求示例
{
"developerID":${developerID},
"devAppID":${devAppID},
"templateID":${templateID},
"contentID":${contentID},
"placeholderParams": {},
"sign":"${sign}",
"openIDs":[1,2]
}'
  • 接口示例
    • 请求示例
{
"code": 0,
"msg": "success"
}

三、签名sign生成规则

  • 签名规则:使用指定字段生成待签字符串,然后使用appKey进行hmac-sha1进行签名,结果大小写均可。
    • 订阅用户查询待签字符串:devAppID=${devAppID}&developerID=${developerID}
    • 消息下发待签字符串:contentID=${contentID}&devAppID=${devAppID}&developerID=${developerID}&templateID=${templateID}
  • 代码示例:
    • go示例
func GenerateSign(str string, key string) string {
// 1. HMAC-SHA1加密
h := hmac.New(sha1.New, []byte(key))
h.Write([]byte(str))
signBytes := h.Sum(nil)

// 2. hex编码
return hex.EncodeToString(signBytes)
}
    • java示例
public class HmacSigner {
public static String generateSign(String str, String key) {
try {
// 1. HMAC-SHA1加密
Mac hmac = Mac.getInstance("HmacSHA1");
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA1");
hmac.init(keySpec);
byte[] signBytes = hmac.doFinal(str.getBytes(StandardCharsets.UTF_8));
// 2. hex编码
return bytesToHex(signBytes);
} catch (Exception e) {
throw new RuntimeException("签名生成失败", e);
}
}
private static String bytesToHex(byte[] bytes) {
StringBuilder hexString = new StringBuilder();
for (byte b : bytes) {
String hex = Integer.toHexString(0xff & b);
if (hex.length() == 1) hexString.append('0');
hexString.append(hex);
}
return hexString.toString();
}
}

上一篇:消息订阅服务
下一篇:小游戏合作常见问题(FAQ)
文档内容是否有帮助?
有帮助
无帮助