04/29/2024 11:54:53

群组模块

一、概述

MSDK群组模块,只有国内版本支持该模块功能。

支持的渠道有:

  1. WeChat
  2. QQ

主要功能包括:

建群、加入现有群组、获取群状态、获取群关系、绑定群、解绑群、提醒会长绑群、获取会长的建群列表、发送群组消息。其中,QQ 渠道特有的功能有:绑定群、提醒会长绑群、获取会长的建群列表。后台方法详见 后台-群组 中的说明。

功能列表 客户端方法 后台方法
建群 CreateGroup(QQ、WeChat) /v2/group/create_bind_group(QQ)
加入现有群 JoinGroup(QQ、WeChat) /v2/group/join_group(QQ)
获取群状态 GetGroupState(QQ、WeChat) /v2/group/get_group_info(QQ、WeChat)
获取群关系 GetGroupRelation(QQ、WeChat) /v2/group/get_group_rela_info(QQ、WeChat)
解绑群 UnbindGroup(QQ、WeChat) /v2/group/unbind_group(QQ、WeChat)
绑定群 BindGroup(QQ) /v2/group/bind_existing_group(QQ)
提醒会长建群 RemindToBindGroup(QQ) /v2/group/remind_leader_bind(QQ)
获取会长的群列表 GetGroupList(QQ) /v2/group/get_group_list(QQ)
发送群消息 SendGroupMessage(QQ、WeChat) /v2/group/send_group_msg(QQ)
/v2/group/send_group_msg(WeChat)

工会群的流程:

会长的流程

普通会员的流程

权限申请说明:
1.手Q:
登录 飞鹰系统(需内网访问,可以联系腾讯运营或者产品接口人协助申请)按照如下路径申请,路径:飞鹰左侧导航找到 “MSDK接入”—>“特殊权限申请”—>“手Q加绑群”,填写对应信息即可。
向手Q游戏中心对接人提绑群需求单,安排人力配置IDIP等事宜。
PS:每个游戏会有对应的接口人,负责该游戏的腾讯运营/产品接口人了解。未接入IDIP会返回 221008 错误码

2.微信:
联系 wxgame(微信游戏助手) 提供游戏名称及 AppID 即可申请开通。

手Q加绑群能力需要注意:
验证加绑群能力之前需要确保业务侧已完成 IDIP 接口开发(联系 IDIP助手 排期)及手Q加绑群平台侧查询IDIP接口开发完成。(目的:用于手Q加绑群平台侧查询玩家是否是公会成员/会长等信息。IDIP接口开发完成后联系 MSDK助手 对接。)

二、接入向导

2.1 注册回调

1)功能描述

接受MSDK群组模块的回调,游戏需要注册回调函数进行处理。

2)接口声明

C#
C++
/// <summary>
/// 群的回调接口
/// </summary>
public static event OnMSDKRetEventHandler<MSDKGroupRet> GroupRetEvent;
class MSDKGroupObserver 
{
public:
    // 群的回调接口
    virtual void OnLoadGroupData(const MSDKGroupRet &groupRet) {};
};

3)示例代码

C#
C++
MSDKGroup.GroupRetEvent += OnGroupRetEvent;

public void OnGroupRetEvent(MSDKGroupRet groupRet)
{
    string methodTag = "";
    if (groupRet.MethodNameId == (int)MSDKMethodNameID.MSDK_GROUP_CREATE) {
        methodTag = "CreateGroup";
    } else if (groupRet.MethodNameId == (int)MSDKMethodNameID.MSDK_GROUP_BIND) {
        methodTag = "BindGroup";
    } else if (groupRet.MethodNameId == (int)MSDKMethodNameID.MSDK_GROUP_GET_GROUP_LIST) {
        methodTag = "GetGroupList";
    } else if (groupRet.MethodNameId == (int)MSDKMethodNameID.MSDK_GROUP_GET_GROUP_STATE) {
        methodTag = "GetGroupState";
    } else if (groupRet.MethodNameId == (int)MSDKMethodNameID.MSDK_GROUP_JOIN) {
        methodTag = "JoinGroup";
    } else if (groupRet.MethodNameId == (int)MSDKMethodNameID.MSDK_GROUP_UNBIND) {
        methodTag = "UnbindGroup";
    } else if (groupRet.MethodNameId == (int)MSDKMethodNameID.MSDK_GROUP_REMIND_TO_BIND) {
        methodTag = "RemindToBind";
    } else if (groupRet.MethodNameId == (int)MSDKMethodNameID.MSDK_GROUP_SEND_GROUP_MESSAGE) {
        methodTag = "SendGroupMessage";
    } else if (groupRet.MethodNameId == (int)MSDKMethodNameID.MSDK_GROUP_GET_GROUP_RELATION) {
        methodTag = "GetGroupRelation";
    }

    SampleInstance.showRetDialog(methodTag, groupRet);
}

//销毁的时候需要移除监听
private void OnDestroy()
{
    MSDKGroup.GroupRetEvent -= OnGroupRetEvent;
}
MSDKGroup::SetGroupObserver(new MyGroupObserver());
class MyGroupObserver : public MSDKGroupObserver 
{
    void OnLoadGroupData(const MSDKGroupRet &groupRet) {
        handleCallBack(groupRet, groupRet.methodNameID);
    }
}

4)数据结构

MSDKGroupRet 详解
继承自 MSDKBaseRet,包含基础的信息

成员变量名称 类型 说明
Status int 状态码:
1.查询群用户和群的关系
a、Wechat 3:群成员; 4:非群成员; -1:查询失败
b、QQ 1:群主,2:管理员,3:普通成员,4:非成员 ,-1 查询错误;
2.查询工会是否绑定微信的群 0:未绑定、1:绑定了
GroupId string 1、QQ CreateGroup(创建群) 和 GroupState(查询工会是否绑定群时) 返回群号
2、WeChat时返回为空
GroupName string 1、QQ CreateGroup(创建群) 和 GroupState(查询工会是否绑定群时) 返回群名称
2、WeChat 返回为空
GroupOpenID string 1、QQ GetGroupState(获取群状态)时返回,用于发送群消息使用
2、WeChat 返回为空
GroupInfo List 工会信息列表,MSDKGroupInfo 的数据结构
1、QQ GetGroupList(查询用户创建的群列表时)返回用户创建的群列表
2、WeChat 返回为空

2.2 创建群

1)功能描述

① 微信端,工会会长创建微信群;
② 手Q端,工会会长创建手Q群;
返回信息及结果:
createGroup 的 retCode 为 0 表示创建群成功,在移动设备的手Q/微信,可以看到新建的群组信息。5.10及以上版本,优化了手Q建群的回调,可以通过 MSDKGroupRet 的 GroupId 和 GroupName 拿到新建群组的信息。

特别注意:
1、微信、QQ平台侧对同一账号加群数量有限制,超出限制后调用 MSDK 相关接口会报错;
2、公会 ID 建议随机性,勿递增或存在规律性。

2)接口声明

C#
C++
public static void CreateGroup(string unionID, string unionName = "", string roleName = "", string zoneID = "", string roleID = "", string extraJson = "")
static void CreateGroup(String unionID, String unionName ="", String roleName ="", String zoneID ="", String roleID = "", String extraJson= "");

3)入参说明

参数名称 参数类型 说明
unionID string 工会 ID。
手Q:字符串里需要使用数值,如:“123456”,限制长度 <= 20;
微信:暂无限制
unionName string 工会名称
roleName string 游戏中的角色名称
zoneID string 游戏区服 ID
手Q:字符串里需要使用数值,如:“5678”
roleID string 游戏角色 ID
extraJson string 扩展字段,默认为空。严格区分大小写,格式参考:{"areaID":"1","partitionID":"1","type":"1"}
areaID string 游戏大区 ID,手Q要求,测试环境必需传入与 IDIP 约定的值,正式环境一般固定传入 2,也可以传入与 IDIP 约定的值。微信无需传入 areaID
partitionID string 区服 ID,选填
type string 群类型,默认为 0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q 游戏中心排期并由手Q 游戏中心提供具体值。选填

4)示例代码

C#
C++
if (_mCurLoginChannel.Equals("QQ")) {
    string unionID = "1234";
    string unionName = "unionName";
    string roleName = "roleName";
    string zoneID = "5678";
    string roleID = "roleID";
    string extraJson = "{\"areaID\":\"1\"}"; //areaID必填;测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值
    MSDKGroup.CreateGroup(unionID, unionName, roleName, zoneID, roleID,extraJson);
} else if (_mCurLoginChannel.Equals("WeChat")) {
    string unionID = "unionID";
    string unionName = "unionName";
    string roleName = "roleName";
    MSDKGroup.CreateGroup(unionID, unionName, roleName);
}
if (mCurChannel == "QQ") {
    string unionID = "1234";
    string unionName = "unionName";
    string roleName = "roleName";
    string zoneID = "5678";
    string roleID = "roleID";
    string extraJson = "{\"areaID\":\"1\"}"; //areaID必填;测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值
    MSDKGroup::CreateGroup(unionID, unionName, roleName, zoneID, roleID, extraJson);
} else if (mCurChannel == "WeChat") {
    string unionID = "unionID";
    string unionName = "unionName";
    string roleName = "roleName";
    MSDKGroup::CreateGroup(unionID, unionName, roleName);
}

2.3 加入群

1)功能描述

工会成员加入已存在的群。
① 微信端:加入微信群,MSDK V5.8及之前的版本只需要填写 unionID, MSDK V5.9 及以后版本支持加入工会群时通过扩展字段 nickName 设置昵称;
② 手Q端:加入QQ群,手Q因为可以加入多个群组,需要额外填写 groupID(手Q群号),及 zoneID,roleID,nickName(用户需保留创建群的信息);
返回信息及结果:
joinGroup 的 retCode 为 0 表示添加成功,手Q端/微信端可见显示已成功进入相应群组。

特别注意:
1、微信、QQ平台侧对同一账号加群数量有限制,超出限制后调用 MSDK 相关接口会报错。

2)接口声明

C#
C++
public static void JoinGroup(string unionID, string zoneID = "", string roleID = "", string groupID = "", string extraJson = "")
static void JoinGroup(String unionID, String zoneID = "", String roleID = "", String groupID = "", String extraJson = "");

3)入参说明

参数名称 参数类型 说明
unionID string 工会 ID。
手Q:字符串里需要使用数值,如:“123456”,限制长度 <= 20;
微信:暂无限制。
zoneID string 游戏区服 ID(如涉及跨服加入群,填写公会所在区服 ID)
手Q:字符串里需要使用数值,如:“5678”。
roleID string 游戏角色 ID
groupID string 手Q群 ID
extraJson string 扩展字段,默认为空。严格区分大小写,格式参考:{"areaID":"1","partitionID":"1","nickName":"test","userZoneID":"用户所在区服"}
其中 areaID,手Q要求,测试环境必需传入与 IDIP 约定的值,正式环境一般固定传入 2,也可以传入与 IDIP 约定的值。微信无需传入 areaID。userZoneID 是手Q要求,涉及跨服加入群必须传入 userZoneID,值填写用户所在区服。

4)示例代码

C#
C++
if (_mCurLoginChannel.Equals("QQ")) {
    string unionID = "1234";
    string zoneID = "5678";
    string roleID = "roleID";
    string groupID = "1234567890";
    string extraJson = "{\"areaID\":\"1\"}"; //areaID必填;测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值
    MSDKGroup.JoinGroup(unionID, zoneID, roleID, groupID, extraJson);
} else if (_mCurLoginChannel.Equals("WeChat")) {
    string unionID = "unionID";
    MSDKGroup::JoinGroup(unionID);
}
if (mCurChannel == "QQ") {
    string groupID = "1234567890";
    string unionID = "1234";
    string zoneID = "5678";
    string roleID = "roleID";
    string extraJson = "{\"areaID\":\"1\"}"; //areaID必填;测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值
    MSDKGroup::JoinGroup(unionID, zoneID, roleID, groupID, extraJson);
} else if (mCurChannel == "WeChat") {
    string unionID = "unionID";
    MSDKGroup::JoinGroup(unionID);
}

2.4 获取群状态

1)功能描述

查看工会绑群的状态。
① 微信端:只需要输入查询的工会信息 unionID;
② 手Q端:需要 unionID 和 zoneID,查询工会绑群状态信息;
返回信息及结果,可以获取 group_openid 用于发送群消息;
返回码中,Status:0 表示未绑定群组,1 表示工会已绑定群组。

2)接口声明

C#
C++
public static void GetGroupState(string unionID, string zoneID = "", string extraJson = "")
static void GetGroupState(String unionID, String zoneID = "", String extraJson = "") ;

3)入参说明

参数名称 参数类型 说明
unionID string 工会 ID。
手Q:字符串里需要使用数值,如:“123456”,限制长度 <= 20;
微信:暂无限制。
zoneID string 游戏区服 ID
手Q:字符串里需要使用数值,如:“5678”。
extraJson string 扩展字段,默认为空。严格区分大小写,格式参考:{"areaID":"1"}

4)示例代码

C#
C++
if (_mCurLoginChannel.Equals("QQ")) {
    string unionID = "1234";
    string zoneID = "5678";
    MSDKGroup.GetGroupState(unionID, zoneID);
} else if (_mCurLoginChannel.Equals("WeChat")) {
    string unionID = "unionID";
    MSDKGroup.GetGroupState(unionID);
}
if (mCurChannel == "QQ") {
    string unionID = "1234";
    string zoneID = "5678";
    MSDKGroup::GetGroupState(unionID, zoneID);
} else if (mCurChannel == "WeChat") {
    string unionID = "unionID";
    MSDKGroup::GetGroupState(unionID);
}

2.5 获取群关系

1)功能描述

当工会已绑定群后,调用该接口查询用户与群关系信息,可返回用户与群的关系(群主、管理员、普通成员,非成员)信息。
① 微信端:输入查询的工会信息 unionID
② 手Q端:输入指定的 groupID
返回信息及结果如下:

渠道 返回值
微信 3:群成员; 4:非群成员; -1:查询失败
QQ 1:群主; 2:管理员;3:普通成员;4:非成员;-1:查询错误

2)接口声明

C#
C++
public static void GetGroupRelation(string targetID, string extraJson = "")
static void GetGroupRelation(String targetID, String extraJson = "");

3)入参说明

参数名称 参数类型 说明
targetID string 微信时填写工会 unionID,手Q时填写群号 groupID
extraJson string 扩展字段,默认为空。严格区分大小写,格式参考:{"areaID":"1"}

4)示例代码

C#
C++
if (_mCurLoginChannel.Equals("QQ")) {
    string groupID = "1234567890";
    MSDKGroup.getGroupRelation(groupID);
} else if (_mCurLoginChannel.Equals("WeChat")) {
    string unionID = "WeChatunionID";
    MSDKGroup.GetGroupRelation(unionID);
}
if (mCurChannel == "QQ") {
    string groupID = "1234567890";
    MSDKGroup::GetGroupRelation(groupID);
} else if (mCurChannel == "WeChat") {
    string unionID = "WeChatUnionID";
    MSDKGroup::GetGroupRelation(unionID);
}

2.6 解绑群

1)功能描述

解除绑定所在的群组。
① 微信端:只需要输入 unionID;
② 手Q端:依次输入之前记录的 unionID,unionName 及 zoneID,roleID;
返回信息及结果:
返回解绑成功信息返回码,通过查询 getGroupState,如果返回用户所在工会未绑定群组,则可验证用户解绑群组成功。

2)接口声明

C#
C++
public static void UnbindGroup(string unionID, string unionName = "", string zoneID = "", string roleID = "", string extraJson = "")
static void UnbindGroup(String unionID, String unionName = "", String zoneID = "", String roleID = "", String extraJson = "");

3)入参说明

参数名称 参数类型 说明
unionID string 工会 ID。
手Q:字符串里需要使用数值,如:“123456”,限制长度 <= 20;
微信:暂无限制。
unionName string 工会名称 ID
zoneID string 游戏区服 ID
手Q:字符串里需要使用数值,如:“5678”。
roleID string 游戏角色 ID
extraJson string 扩展字段,默认为空。严格区分大小写,格式参考:{"areaID":"1"}
其中 areaID,手Q要求,测试环境必需传入与 IDIP 约定的值,正式环境一般固定传入 2,也可以传入与 IDIP 约定的值。微信无需传入 areaID。

4)示例代码

C#
C++
if (_mCurLoginChannel.Equals("QQ")) {
    string unionID = "1234";
    string unionName = "unionName";
    string zoneID = "5678";
    string roleID = "roleID";
    string extraJson = "{\"areaID\":\"1\"}";//areaID必填;测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值
    MSDKGroup.UnbindGroup(unionID, unionName, zoneID, roleID,extraJson);
} else if (_mCurLoginChannel.Equals("WeChat")) {
    string unionID = "unionID";
    MSDKGroup.UnbindGroup(unionID);
}
if (mCurChannel == "QQ") {
    string unionID = "1234";
    string unionName = "unionName";
    string zoneID = "5678";
    string roleID = "roleID";
    string extraJson = "{\"areaID\":\"1\"}";//areaID必填;测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值
    MSDKGroup::UnbindGroup(unionID, unionName , zoneID , roleID, extraJson);
} else if (mCurChannel == "WeChat") {
    string unionID = "unionID";
    MSDKGroup::UnbindGroup(unionID);
}

2.7 提醒会长绑群(仅支持QQ渠道)

1)功能描述

当工会未绑群时,会员可提醒会长绑群。把工会绑定到已创建的 QQ 群,通过公众号“QQ手游”接收通知,频率限制每天只收到一条。校验提醒者和被提醒者必须为工会成员,游戏方来保证被提醒人为工会会长。

2)接口声明

C#
C++
public static void RemindToBindGroup(string unionID, string zoneID, string roleID, string roleName, string leaderOpenID, string leaderRoleID, string extraJson = "")
static void RemindToBindGroup(String unionID, String zoneID, String roleID, String roleName, String leaderOpenID, String leaderRoleID, String extraJson = "");

3)入参说明

参数名称 参数类型 说明
unionID string 工会 ID。
手Q:字符串里需要使用数值,如:“123456”,限制长度 <= 20;
微信:暂无限制。
zoneID string 游戏区服 ID
手Q:字符串里需要使用数值,如:“5678”。
roleID string 游戏角色 ID
roleName string 游戏角色名称
leaderOpenID string 会长 openID
leaderRoleID string 会长角色 ID
extraJson string 扩展字段,默认为空。严格区分大小写,格式参考:{"areaID":"1"}
其中 areaID,手Q要求,测试环境必需传入与 IDIP 约定的值,正式环境一般固定传入 2,也可以传入与 IDIP 约定的值。微信无需传入 areaID。

4)示例代码

C#
C++
string unionID = "1234";
string zoneID = "5678";
string roleID = "roleID";
string roleName = "roleName";
string leaderOpenID = "leaderOpenID";
string leaderRoleID = "leaderRoleID";
string extraJson = "{\"areaID\":\"1\"}";//areaID必填;测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值
MSDKGroup.RemindToBindGroup(unionID, zoneID, roleID, roleName, leaderOpenID, leaderRoleID extraJson);
string unionID = "1234";
string zoneID = "5678";
string roleID = "roleID";
string roleName = "roleName";
string leaderRoleID = "leaderRoleID";
string leaderOpenID = "leaderOpenID";
string extraJson = "{\"areaID\":\"1\"}";//areaID必填;测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值
MSDKGroup::RemindToBindGroup(unionID, zoneID, roleID, roleName, leaderOpenID, leaderRoleID, extraJson);

2.8 绑定群(仅支持QQ渠道)

1)功能描述

手Q端,会长绑定已存在的 QQ 群组,调用该接口前需要先调用 GetGroupList() 接口拉取已创建的群列表。
返回信息及结果:
返回绑定成功的返回值信息,通过调用 getGroupState,可见已绑定到群组,实现验证。

2)接口声明

C#
C++
public static void BindGroup(string unionID, string zoneID, string roleID, string groupID, string groupName, string extraJson = "")
static void BindGroup(String unionID, String zoneID, String roleID, String groupID, String groupName, String extraJson = "");

3)入参说明

参数名称 参数类型 说明
unionID string 工会 ID。
手Q:字符串里需要使用数值,如:“123456”,限制长度 <= 20;
微信:暂无限制。
zoneID string 游戏区服 ID
手Q:字符串里需要使用数值,如:“5678”。
roleID string 游戏角色 ID
groupID string 手Q群号,创建群时获得
groupName string 手Q群名,创建群时获得
extraJson string 扩展字段,默认为空。严格区分大小写,格式参考:{"areaID":"1"}
其中 areaID,手Q要求,测试环境必需传入与 IDIP 约定的值,正式环境一般固定传入 2,也可以传入与 IDIP 约定的值。微信无需传入 areaID。

4)示例代码

C#
C++
string unionID = "1234";
string zoneID = "5678";
string roleID = "roleID";
string groupID = "1234567890";
string groupName = "groupName";
string extraJson = "{\"areaID\":\"1\"}"; //areaID必填;测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值
MSDKGroup.BindGroup(unionID, zoneID, roleID, groupID, groupName, extraJson);
string groupID = "1234567890";
string groupName = "groupName";
string unionID = "1234";
string zoneID = "5678";
string roleID = "roleID";
string extraJson = "{\"areaID\":\"1\"}"; //areaID必填;测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值
MSDKGroup::UnbindGroup(unionID, zoneID, roleID, groupID, groupName, extraJson);

2.9 获取会长的建群列表(QQ渠道独有)

1)功能描述

手Q端,查看会长已经拥有的群组列表。
返回信息:
返回值中的 GroupInfo 记录会长拥有的群组列表,其中每一群组记录包含群组的 groupID 和 groupName 。

2)接口声明

C#
C++
public static void GetGroupList()
static void GetGroupList();

3)示例代码

C#
C++
MSDKGroup.GetGroupList();
MSDKGroup::GetGroupList();

4)数据结构

MSDKGroupInfo 详解
成员变量名称 类型 说明
GroupId string 必填,群id
GroupName string 必填,群名称
ExtraJson string 选填,扩展字段,其他的群信息

2.10 发送群组消息

1)功能描述

微信/QQ端,发送消息到群聊。发送信息成功,微信/QQ端可见消息记录。单个用户在同一个群,一天最多100条。

2)接口声明

C#
C++
public static void SendGroupMessage(MSDKGroupMessage groupMessage, string ID)
static void SendGroupMessage(const MSDKGroupMessage &groupMessage, String ID);

3)入参说明

参数名称 参数类型 说明
groupMessage MSDKGroupMessage 群消息
ID string QQ渠道:分享指定群的 group_openid
WeChat渠道:分享指定群的工会 ID

MSDKGroupMessage 详解

1.QQ渠道

参数名 类型 说明
Title string 必填,分享的标题
Desc string 选填,分享的内容
Link string 必填,对应 redirect_url 回调地址 (第三方应用在上架时配置的回调地址,即:申请手Q群能力权限时填写的 “回调地址” ,不得填写其它域名地址)
ExtraJson string 必填,扩展字段,透传 imageUrl、param字段
imageUrl string 必填,消息左侧缩略图 URL
param string 选填,redirect_url 的输入参数,第三方可根据此参数来跳转到不同详情页(默认可传空"")

2.WeChat渠道

参数名 类型 说明
Type int 必填,消息类型,1:应用邀请 2:链接分享
Title string 必填,分享的标题
Desc string 选填,分享的内容
Link string 选填,跳转 URL,当Type = 2 时为必填
ActionReport int 必填,分享类型,邀请1,炫耀2,赠送3,索要4
ExtraJson string 选填,扩展字段,透传 messageExt、 mediaTagName 字段
messageExt string 选填,分享消息的额外字段
mediaTagName string 选填,区分游戏消息类型,用于数据统计

4)示例代码

1.QQ渠道

C#
C++
MSDKGroupMessage info = new MSDKGroupMessage();
info.Title = "title";
info.Link = "http://www.qq.com";
info.Desc = "desc";
info.ExtraJson = "{\"imageUrl\": \"https://avatars0.githubusercontent.com/u/3755338?s=460&amp;v=4\",\"param\": \"11\"}";

string ID = "group_openid";
MSDKGroup.SendGroupMessage(info, ID);
MSDKGroupMessage groupMessage;
groupMessage.Title = "title";
groupMessage.Link = "http://www.qq.com";
groupMessage.Desc = "desc";
groupMessage.ExtraJson = "{\"imageUrl\": \"https://avatars0.githubusercontent.com/u/3755338?s=460&amp;v=4\",\"param\": \"11\"}";

string ID = "group_openid";
MSDKGroup::SendGroupMessage(groupMessage, ID);

2.WeChat渠道

C#
C++
MSDKGroupMessage info = new MSDKGroupMessage();
info.Title = "title";
info.Link = "https://game.weixin.qq.com/cgi-bin/act?noticeid=90103953&amp;actid=7006&amp;k=Q6EgQ_8DgubBRXGb1vmTBw&amp;q=0&amp;jsapi_ticket=1&amp;hongbaoid=8CF558E6633CCB020796260075B95465#wechat_redirect";
info.Desc = "desc";
info.Type = 1;
info.ActionReport = 1;
info.ExtraJson = "{\"messageExt\": \"test1\",\"mediaTagName \": \"test2\"}";

string ID = "工会ID";
MSDKGroup.SendGroupMessage(info, ID);
MSDKGroupMessage groupMessage;
groupMessage.Title = "title";
groupMessage.Link = "https://game.weixin.qq.com/cgi-bin/act?noticeid=90103953&amp;actid=7006&amp;k=Q6EgQ_8DgubBRXGb1vmTBw&amp;q=0&amp;jsapi_ticket=1&amp;hongbaoid=8CF558E6633CCB020796260075B95465#wechat_redirect";
groupMessage.Desc = "desc";
groupMessage.Type = 1;
groupMessage.ActionReport = 1;
groupMessage.ExtraJson = "{\"messageExt\": \"test1\",\"mediaTagName \": \"test2\"}";

string ID = "工会ID";
MSDKGroup::SendGroupMessage(groupMessage, ID);

三、常见问题

3.1 MSDKUnionInfo 详解

成员变量名称 类型 说明
unionID string 必填,公会 id
unionName string 选填,公会名称
zoneID string 选填,公会区服 id
userZoneID string 选填,用户区服 id,与公会区服一样时可不填。因为会长可能转让给非本区服的人,所以公会区服不一定是用户区服
roleID string 选填,角色 id
roleName string 选填,角色名称,作为群昵称显示
leaderID string 选填,公会会长的 openid
leaderRoleID string 选填,公会会长的角色 id
leaderZoneID string 选填,会长区服信息,与公会区服一样时可不填。会长可能转让给非本区服的人
type string 选填,0公会(或不填),1队伍,2赛事
areaID string 选填,游戏大区ID,测试环境使用,理论上只有1:QQ,2:微信,但是测试环境有很多虚拟的
partitionID string 选填,小区服 id,暂时无用
nickName string 选填,玩家昵称
extraJson string 选填,扩展字段

3.2 手Q加绑群能力注意事项

(1)一个公会 ID 只能和一个 QQ 群进行绑定;
(2)手Q加绑群能力平台侧以 AppID+公会区服ID+公会ID 作为唯一标识。如果游戏侧有合服需求,则要注意合服后的逻辑处理,即合服前玩家区服ID和合服后区服ID的映射处理;假如合服前是在 101 区创建了公会,以后不管用户在哪个区,都要传 101 这个区ID;
(3)如果用户解散了公会 QQ 群,公会和公会 QQ群 不会自动解绑。可以通过以下方法取消绑定关系,如果没有进行过以下任意一种操作时,则绑定关系不会自动消失:

  • 会长调用解绑接口解散群关系;
  • 当公会成员调用加群接口时,此时是查询不到群ID的,则会默认进行解绑;

(4)会长转让后,新会长也可以进行解绑操作;
(5)需要在 extraJson 字段中传入 areaID,严格区分大小写,测试环境传入与IDIP约定的值即可,正式环境一般固定传入2,也可以传入与IDIP约定的值;

3.3 错误码

(1)QQ 群组功能返回码
(2)微信群组功能返回码



Copyright © 2024 MSDK.
All rights reserved.

results matching ""

    No results matching ""