概述
通过调用MSDK群功能,游戏内帮派的会长玩家可以进行帮派绑定聊天群,解绑帮派绑定的聊天群,普通玩家可以加入帮派的聊天群,轻松给游戏增加玩家群体互动的能力,实现玩家活跃度和黏度的双重提升。 目前聊天群支持QQ群和微信群,每个帮派最多绑定一个QQ群和一个微信群
显示详情接入向导
前置条件
1) 您已经按接入配置模块说明完成 接入配置
2) 您已经按接入登录模块说明完成 接入登录
手Q群功能新版V2 (1.3.0u及以上版本)
手Q新版加绑群功能简化了老版本复杂的加绑群流程。
接口调用流程如下图:
会长创建公会群/进入公会流程图
普通玩家加入公会/公会成员进入公会流程图
1 调用创建QQ群接口(v2)
1)功能描述
公会会长创建并直接绑定QQ群接口,结果通过BindGroupEvent回调给游戏。
2)接口声明
public void WGCreateQQGroupV2(GameGuild gameGuild);
3)参数说明
GameGuild:设置参数说明
参数名称 | 类型 | 说明 |
---|---|---|
guildId | String | 公会id;字符串里需要使用数值,如:"123456" |
guildName | String | 公会昵称 |
zoneId | String | 大区id |
roleId | String | 角色id |
partition | String | (小区)区服id,可以不填写,暂时无用 |
areaId | string | 游戏大区ID,“1”qq,“2”微信,可自定义 |
4)返回值
无,创建群的结果通过BindGroupEvent回调给游戏。
5)示例代码:
GameGuild gameGuild = new GameGuild();
gameGuild.guildId = "100703379";
gameGuild.guildName = "msdk";
gameGuild.zoneId = "100";
gameGuild.roleId = "静静";
gameGuild.partition = "10";
gameGuild.areaId = "123";
WGPlatform.Instance.WGCreateQQGroupV2(gameGuild);
MsdkEvent.Instance.OnCreateGroupV2Event += (GroupRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 创建绑定群信息成功
}
else
{
// 创建绑定群信息失败
}
};
6)特殊说明
无
7)名称解释
无
2 调用查询QQ群关系接口(v2)
1)功能描述
当公会已绑定群后,调用该接口查询用户与群关系信息接口;可返回用户与群的关系(群主、管理员、普通成员,非成员)信息,查询结果通过QueryGroupEvent回调给游戏。
2)接口声明
public void WGQueryQQGroupInfoV2(String groupId);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
groupId | String | 创建群时返回的群id(群id即为群号) |
4)返回值
无,查询结果通过QueryGroupEvent回调给游戏。
5)示例代码:
WGPlatform.Instance.WGQueryQQGroupInfoV2("11002222");
MsdkEvent.Instance.QueryGroupInfoV2Event += (GroupRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 查询群信息成功
}
else
{
// 查询群信息失败
}
};
6)特殊说明
无
7)名称解释
无
3 调用加入QQ群接口(v2)
1)功能描述
游戏内公会成员加入QQ群接口;调用该接口前,先调用WGQueryQQGroupInfoV2接口查询用户是否是群成员,当用户为非群成员身份时,显示加群按钮,结果通过JoinQQGroupEvent回调给游戏。
2)接口声明
注意调用函数时参数传递的顺序
public void WGJoinQQGroupV2(GameGuild gameGuild,String groupId);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
gameGuild | GameGuild | 公会信息 |
groupId | String | 群id(群id即为群号) |
GameGuild:设置参数说明
参数名称 | 类型 | 说明 |
---|---|---|
guildId | String | 公会id;字符串里需要使用数值,如:"123456" |
zoneId | String | 大区id;如涉及跨服加入群,填写公会所在区服id |
roleId | String | 角色id |
partition | String | (小区)区服id,可以不填写,暂时无用 |
userZoneId | String | (选填;如涉及跨服加入群时必须传入,填写用户所在区服)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服 |
areaId | string | 游戏大区ID,“1”qq,“2”微信,可自定义 |
4)返回值
无,加群结果通过JoinQQGroupEvent回调给游戏。
5)示例代码:
groupId = "12345678";
GameGuild gameGuild = new GameGuild();
gameGuild.guildId = "100703379";
gameGuild.zoneId = "100";
gameGuild.roleId = "静静";
gameGuild.partition = "10";
gameGuild.areaId = "123";
WGPlatform.Instance.WGJoinQQGroupV2(gameGuild,groupId);
MsdkEvent.Instance.OnJoinGroupV2Event += (GroupRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 加入群成功
}
else
{
// 创加入群失败
}
};
6)特殊说明
无
7)名称解释
无
4 调用解绑QQ群接口(v2)
1)功能描述
游戏内与QQ群解绑接口;如果用户解散了公会QQ群,公会和公会QQ群不会自动解绑,当群被解散,如何进行解绑操作,可以参考常见问题 里的说明,结果通过UnbindGroupEvent回调给游戏。
2)接口声明
public void WGUnbindQQGroupV2(GameGuild gameGuild);
3)参数说明
GameGuild:设置参数说明
参数名称 | 类型 | 说明 |
---|---|---|
guildId | String | 公会id;字符串里需要使用数值,如:"123456" |
guildName | String | 公会名称 |
zoneId | String | 大区id |
areaId | string | 游戏大区ID,“1”qq,“2”微信,可自定义 |
4)返回值
无,解绑结果通过UnbindGroupEvent回调给游戏。
5)示例代码:
GameGuild gameGuild = new GameGuild();
gameGuild.guildId = "110022";
gameGuild.guildName = "msdk天团";
gameGuild.zoneid = "1122";
gameGuild.areaId = "123";
WGPlatform.Instance.WGUnbindQQGroupV2(gameGuild);
MsdkEvent.Instance.UnbindGroupV2Event += (GroupRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 解绑群成功
}
else
{
// 解绑群失败
}
};
6)特殊说明
无
7)名称解释
无
5 调用绑定已存在的手q群接口(v2)
1)功能描述
会长可将公会绑定到自己已经创建的QQ群接口;调用该接口前先调用WGGetQQGroupListV2接口拉取已创建的群列表;结果通过BindExistGroupV2Event回调给游戏。
2)接口声明
public void WGBindExistQQGroupV2(GameGuild gameGuild,String groupId,String groupName);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
gameGuild | GameGuild | 公会信息 |
groupId | String | 群id(群id即为群号) |
groupName | String | 群昵称 |
GameGuild:设置参数说明
参数名称 | 类型 | 说明 |
---|---|---|
guildId | String | 公会id;字符串里需要使用数值,如:"123456" |
roleId | String | 角色ID |
zoneId | String | 大区id |
areaId | string | 游戏大区ID,“1”qq,“2”微信,可自定义 |
4)返回值
无,解绑结果通过BindExistGroupV2Event回调给游戏。
5)示例代码:
GameGuild gameGuild = new GameGuild();
gameGuild.guildId = "100703379";
gameGuild.roleId = "10"
gameGuild.zoneId = "100";
gameGuild.areaId = "123";
WGPlatform.Instance.WGBindExistQQGroupV2(gameguild, groupId, groupName);
MsdkEvent.Instance.BindExistGroupV2Event += (GroupRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 绑定已创建的QQ群接口成功
}
else
{
// 绑定已创建的QQ群接口失败
}
};
6)特殊说明
无
7)名称解释
无
6 调用获取绑定的手q群的群信息接口(v2)
1)功能描述
获取绑定的手q群的群信息;通过公会ID能拉取到QQ群的群号码,则有绑群;在创建群时候若没有输入公会名称,则此时获取的群名称为空。 结果会通过GetGroupCodeV2Event 回调给游戏。
2)接口声明
public void WGGetQQGroupCodeV2(GameGuild gameGuild);
3)参数说明
GameGuild:设置参数说明
参数名称 | 类型 | 说明 |
---|---|---|
guildId | String | 公会id;字符串里需要使用数值,如:"123456" |
zoneId | String | 大区id |
4)返回值
无,结果会通过GetGroupCodeV2Event 回调给游戏。
5)示例代码:
GameGuild gameGuild = new GameGuild();
gameGuild.guildId = "100703379";
gameGuild.zoneId = "100";
WGPlatform.Instance.WGGetQQGroupCodeV2(gameGuild);
MsdkEvent.Instance.GetGroupCodeV2Event += (GroupRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 查询工会绑定群信息成功
}
else
{
// 查询工会绑定群信息失败
}
};
6)特殊说明
无
7)名称解释
无
7 调用查询群绑定的工会接口(v2)
1)功能描述
根据群ID(群号)查询绑定的公会信息,结果会通过QueryBindGuildV2Event 回调给游戏。
2)接口声明
public void WGQueryBindGuildV2(String groupId, int type);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
groupId | String | 群id(群id即为群号) |
type | int | 群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值 |
4)返回值
无,结果会通过QueryBindGuildV2Event 回调给游戏。
5)示例代码:
WGPlatform.Instance.WGQueryBindGuildV2("111002",0)
MsdkEvent.Instance.QueryBindGuildV2Event += (GroupRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 查询群绑定工会信息成功
}
else
{
// 查询群绑定工会信息失败
}
};
6)特殊说明
无
7)名称解释
无
8 调用查询创建的QQ群列表接口(v2)
1)功能描述
当会长将公会绑定自己已经创建的QQ群时,用于查询已创建的QQ群列表。结果会通过GetGroupListV2Event 回调给游戏。
2)接口声明
public void WGGetQQGroupListV2();
3)参数说明
无
4)返回值
无,结果会通过GetGroupListV2Event 回调给游戏。
5)示例代码:
WGPlatform.Instance.WGGetQQGroupListV2();
MsdkEvent.Instance.GetGroupListV2Event += (GroupRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 拉取我创建的QQ群列表成功
}
else
{
// 拉取我创建的QQ群列表失败
}
};
6)特殊说明
无
7)名称解释
无
9 调用提醒工会会长绑群接口(v2)
1)功能描述
当公会未绑群时,会员可提醒会长绑群接口;把公会绑定到我已创建的QQ群,通过公众号“QQ手游"接收通知,频率限制每天只收到一条;校验提醒者和被提醒者为必须为公会成员,游戏方来保证被提醒人为公会会长,结果会通过RemindGuildLeaderV2Event 回调给游戏。
2)接口声明
注意调用函数时参数传递的顺序
public void WGRemindGuildLeaderV2(GameGuild gameGuild);
3)参数说明
GameGuild:设置参数说明
参数名称 | 类型 | 说明 |
---|---|---|
guildId | String | 公会id;字符串里需要使用数值,如:"123456" |
zoneId | String | 大区id |
roleId | String | 角色id |
roleName | String | 角色名称 |
partition | String | (小区)区服id,可以不填写,暂时无用 |
leaderOpenid | String | 公会会长的openid |
leaderRoleId | String | 公会会长的roleid |
leaderZoneId | String | (选填)会长区服信息,会长可以转让给非本区服的人 |
userZoneId | String | (选填)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服 |
type | String | 群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值 |
areaId | String | 游戏大区ID,"1"qq(默认),"2"微信,可自定义 |
4)返回值
无,结果会通过RemindGuildLeaderV2Event 回调给游戏。
5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = "100703379";
gameGuild.roleId = "12";
gameGuild.roleName = "静静"
gameGuild.zoneId = "100";
gameGuild.leaderOpenid = "78AADD8DC9CF80E655EE68039B1D02C9";
gameGuild.leaderZoneId= "1234";
WGPlatform.Instance.WGRemindGuildLeaderV2 (gameguild);
MsdkEvent.Instance.RemindGuildLeaderV2Event += (GroupRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 提醒会长绑群成功
}
else
{
// 提醒会长绑群失败
}
};
6)特殊说明
无
7)名称解释
无
微信群功能
1 概要说明
您先注册微信群功能回调然后再按推荐流程调用微信群功能接口即可接入微信群功能 接口调用流程如下图:
2 注册查询群信息回调
参见 注册查询群信息回调 手Q和微信群功能共用此回调
3 注册微信建群回调
1)功能描述
将微信建群结果回调给游戏。
2)接口声明
public delegate void CreateWXGroupDelegate(GroupRet groupRet);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
groupRet | GroupRet 类 | 群功能回调信息 |
4)返回值
无
5)示例代码
MsdkEvent.Instance.CreateWXGroupEvent += (GroupRet groupRet) => {
if (groupRet.flag == eFlag.eFlag_Succ) {
// 创建微信群成功
} else {
// 创建微信群失败
String msg = handlerWXErrorCode(groupRet);
}
}
String handlerWXErrorCode(GroupRet groupRet){
String msg = "";
if (groupRet.platform == 1)
{
int code = groupRet.errorCode;
if (code == eFlag.eFlag_WX_UserCancel)
{
msg = "用户取消";
}
else if (code == eFlag.eFlag_WX_Group_IDHadCreatedToday)
{
msg = "今天已经建过群,每天每个ID只能创建一次群聊";
}
else if (code == eFlag.eFlag_WX_Group_JoinAmountBeyond)
{
msg = "加群数量超限,每天每个ID最多可加2个群";
}
else if (code == eFlag.eFlag_WX_Group_HasNoAuthority)
{
msg = "游戏没有建群权限";
}
else if (code == eFlag.eFlag_WX_Group_AmountBeyond)
{
msg = "建群或者解绑群数量超过上限,用户创建群不能超过5个或者解绑群不能超过5个";
}
else if (code == eFlag.eFlag_WX_Group_HadExist)
{
msg = "微信群已存在";
}
else if (code == eFlag.eFlag_WX_Group_IDNotExist)
{
msg = "群ID不存在";
}
else if (code == eFlag.eFlag_WX_Group_ParameterError)
{
msg = "参数检查错误";
}
else if (code == eFlag.eFlag_Error)
{
msg = "未知错误,参考微信错误码";
}
}
return msg;
}
6)特殊说明
无
7)名词解释
4 注册加入微信群回调
1)功能描述
将微信加群结果回调给游戏。
2)接口声明
public delegate void JoinWXGroupDelegate(GroupRet ret);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
groupRet | GroupRet 类 | 群功能回调信息 |
4)返回值
无
5)示例代码
MsdkEvent.Instance.JoinWXGroupEvent += (GroupRet groupRet) => {
if (groupRet.flag == eFlag.eFlag_Succ) {
// 加入微信群成功
} else {
// 加入微信群失败
String msg = handlerWXErrorCode(groupRet);
}
}
}
6)特殊说明
无
7)名词解释
无
5 注册查询微信群状态回调
1)功能描述
将微信群状态回调给游戏。
2)接口声明
public delegate void QueryWXGroupStatusDelegate(GroupRet ret);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
groupRet | GroupRet 类 | 群功能回调信息 |
4)返回值
无
5)示例代码
MsdkEvent.Instance.QueryWXGroupStatusEvent += (GroupRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 查询群信息成功
}
else
{
// 查询群信息失败
String msg = handlerWXErrorCode(ret);
}
};
6)特殊说明
无
7)名词解释
无
6 调用查询微信群信息接口
1)功能描述
游戏内查询公会微信群信息,用于检查是否创建微信公会群以及对应用户是否加入群。
2)接口声明
void WGQueryWXGroupInfo(String unionid, String openIdList);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
unionid | String | 公会id |
openIdList | String | 待检查是否在群里的用户openid列表,逗号分割 |
4)返回值
无,调用结果会通过QueryGroupEvent回调给游戏
5)示例代码
WGPlatform.Instance.WGQueryWXGroupInfo ("union1", "openid"););
6)特殊说明
无
7)名词解释
无
7 调用创建公会微信群接口
1)功能描述
游戏内创建公会微信群。
2)接口声明
void WGCreateWXGroup(String unionid, String chatRoomName, String chatRoomNickName);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
unionid | String | 公会id |
chatRoomName | String | 聊天群名称 |
chatRoomNickName | String | 用户在聊天群的自定义昵称 |
4)返回值
无,调用结果会通过CreateWXGroupEvent回调给游戏
5)示例代码
WGPlatform.Instance.WGCreateWXGroup("union1", "MSDK-Unity公会", "用户的群昵称");
6)特殊说明
无
7)名词解释
无
8 调用加入公会微信群接口
1)功能描述
游戏内加入公会微信群。
2)接口声明
void WGJoinWXGroup(String unionid, String chatRoomNickName);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
unionid | String | 公会id |
chatRoomNickName | String | 用户在聊天群的自定义昵称 |
4)返回值
无,调用结果会通过 JoinWXGroupEvent 回调给游戏
5)示例代码
WGPlatform.Instance.WGJoinWXGroup ("union1", "用户的群昵称");
6)特殊说明
无
7)名词解释
无
9 查询公会微信群状态接口
1)功能描述
游戏内查询指定的公会id是否已经建群或者是否已经加群。
2)接口声明
void WGQueryWXGroupStatus(String unionid, eStatusType opType);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
unionid | String | 公会id |
opType | eStatusType | 枚举类型:ISCREATED(是否建群),ISJONINED(是否加群) |
4)返回值
无,调用结果会通过 QueryWXGroupStatusEvent 回调给游戏
5)示例代码
WGPlatform.Instance.WGQueryWXGroupStatus("union1", eStatusType.ISCREATED);
6)特殊说明
无
7)名词解释
无
10 解绑微信群接口
1)功能描述
游戏内解绑指定的公会群。
2)接口声明
void WGUnbindWeiXinGroup(String unionid);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
unionid | String | 公会id |
4)返回值
无,调用结果会通过 UnbindGroupEvent 回调给游戏。
5)示例代码
WGPlatform.Instance.WGUnbindWeiXinGroup("union1");
6)特殊说明
无
7)名词解释
无
常见问题
- 如果QQ群被解散有两种方式可以取消绑定关系:
1.会长调用解绑接口解散群关系;
2.当工会成员调用加群接口时,此时是查询不到群ID的,则会默认进行解绑。
如果QQ群被解散而没有进行过以上任意一种操作时,则绑定关系不会自动消失。
3.会长转让后,新会长也可以进行解绑操作