公会绑群
Unity3D
概述
接入向导
手Q群功能
微信群功能
常见问题
Android
概述
接入向导
手Q群功能
微信群功能
常见问题
IOS
概述
接入向导
手Q群功能
微信群功能
常见问题
其他
数据结构
系统工具
公会绑群 / IOS / 概述

概述

通过调用MSDK群功能,游戏内帮派的会长玩家可以进行帮派绑定聊天群,解绑帮派绑定的聊天群,普通玩家可以加入帮派的聊天群,轻松给游戏增加玩家群体互动的能力,实现玩家活跃度和黏度的双重提升。 目前聊天群支持QQ群和微信群,每个帮派最多绑定一个QQ群和一个微信群

显示详情

接入向导

1 前置条件

1) 您已经按接入配置模块说明完成 接入配置

2) 您已经按接入登录模块说明完成 接入登录

2 注册群功能回调

1)功能描述

查询群信息的调用结果会通过此回调异步通知到游戏 ,手Q和微信群功能共用此回调。

2)接口声明
void WGSetGroupObserver(WGGroupObserver *pGroupObserver);
3)参数名称
参数名称 类型 说明
Observer WGGroupObserver 类 群功能信息类
4)返回值

5)示例代码
class GroupCallback : public WGGroupObserver
{
    // 手Q V2群接口回调
    virtual void OnCreateGroupV2Notify(GroupRet& groupRet)
    {
        LOGD("GroupCallback OnCreateGroupV2Notify;flag:%d;errorCode:%d;desc:%s", groupRet.flag, groupRet.errorCode,
            groupRet.desc.c_str());
        int size = groupRet.mQQGroupInfoV2.qqGroups.size();
        std::string groupName = "";
        std::string groupId = "";
        if(size > 0){
            groupName = groupRet.mQQGroupInfoV2.qqGroups[0].groupName;
            groupId = groupRet.mQQGroupInfoV2.qqGroups[0].groupId;
        }
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnCreateGroupV2Notify;flag:%d;errorCode:%d;desc:%s;groupSize:%d;"
                "groupName:%s;groupId:%s", groupRet
                .flag,
            groupRet.errorCode, groupRet.desc.c_str(),size,groupName.c_str(),groupId.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnJoinGroupV2Notify(GroupRet &groupRet)
    {
        LOGD("QQGroupCallback OnJoinGroupV2Notify;flag:%d;errorCode:%d;desc:%s", groupRet.flag, groupRet.errorCode,
            groupRet.desc.c_str());
        char buffer[512];
        snprintf(buffer, 512, "QQGroupCallback OnJoinGroupV2Notify;flag:%d;errorCode:%d;desc:%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }

    virtual void OnQueryGroupInfoV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加查询群信息返回以后的逻辑
        LOGD("GroupCallback OnQueryGroupInfoV2Notify;flag:%d;errorCode:%d;desc:%s;relation:%d", groupRet.flag, groupRet
            .errorCode,
            groupRet.desc.c_str(),groupRet.mQQGroupInfoV2.relation);
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnQueryGroupInfoV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;relation:%d",
            groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),groupRet.mQQGroupInfoV2.relation);
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnUnbindGroupV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用解绑接口以后的返回结果
        std::string groupId = "";
        std::vector<QQGroup> groups = groupRet.mQQGroupInfoV2.qqGroups;
        if(!groups.empty()){
            groupId = groups[0].groupId;
        }
        LOGD("GroupCallback OnUnbindGroupV2Notify;flag:%d;errorCode:%d;desc:%s;groupId%s", groupRet.flag, groupRet
            .errorCode,
            groupRet.desc.c_str(),groupId.c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnUnbindGroupV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;groupId%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),groupId.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnBindExistGroupV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用绑定已存在的群接口以后的返回结果
        std::string groupId = "";
        std::vector<QQGroup> groups = groupRet.mQQGroupInfoV2.qqGroups;
        if(!groups.empty()){
            groupId = groups[0].groupId;
        }
        LOGD("GroupCallback OnBindExistGroupV2Notify;flag:%d;errorCode:%d;desc:%s;groupId%s", groupRet.flag, groupRet
            .errorCode,
            groupRet.desc.c_str(),groupId.c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnBindExistGroupV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;groupId%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),groupId.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }

    virtual void OnGetGroupCodeV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用获取群号接口以后的返回结果
        std::string groupId = "";
        std::string groupName = "";
        std::vector<QQGroup> groups = groupRet.mQQGroupInfoV2.qqGroups;
        if(!groups.empty()){
            groupId = groups[0].groupId;
            groupName = groups[0].groupName;
        }
        LOGD("GroupCallback OnGetGroupCodeV2Notify;flag:%d;errorCode:%d;desc:%s;groupId:%s;groupName:%s", groupRet
            .flag, groupRet
            .errorCode,
            groupRet.desc.c_str(),groupId.c_str(),groupName.c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnGetGroupCodeV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;"
                "groupId:%s;groupName:%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),groupId.c_str(),groupName.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnQueryBindGuildV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用查询工会信息接口以后的返回结果
        LOGD("GroupCallback OnQueryBindGuildV2Notify;flag:%d;errorCode:%d;desc:%s;guildId:%s;guildName:%s", groupRet
            .flag, groupRet
            .errorCode,
            groupRet.desc.c_str(),groupRet.mQQGroupInfoV2.guildId.c_str(),groupRet.mQQGroupInfoV2.guildName.c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnQueryBindGuildV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;"
                "guildId:%s;guildName:%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),groupRet.mQQGroupInfoV2.guildId.c_str(),groupRet.mQQGroupInfoV2.guildName.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnRemindGuildLeaderV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用提醒会长绑群接口以后的返回结果
        LOGD("GroupCallback OnRemindGuildLeaderV2Notify;flag:%d;errorCode:%d;desc:%s", groupRet
            .flag, groupRet
            .errorCode,
            groupRet.desc.c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnRemindGuildLeaderV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnGetGroupListV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用查询工会信息接口以后的返回结果
        std::vector<QQGroup> groups = groupRet.mQQGroupInfoV2.qqGroups;
        std::stringstream ss;
        if(!groups.empty()){
            for(int i = 0 ; i < groups.size(); i++){
                ss << "groupId:" << groups[i].groupId << " ";
                ss << "groupName:" << groups[i].groupName<< " ";
            }
        }
        LOGD("GroupCallback OnGetGroupListV2Notify;flag:%d;errorCode:%d;desc:%s;groups:%s", groupRet.flag, groupRet.errorCode,
            groupRet.desc.c_str(),ss.str().c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnGetGroupListV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;"
                "groups:%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),ss.str().c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
};
6)特殊说明

7)名称解释

GroupRet定义说明

手Q群功能新版V2(3.2.5a及以上版本)

1 概要说明

手Q新版加绑群功能简化了老版本复杂的加绑群流程。
接口调用流程如下图:

会长创建公会群/进入公会流程图

普通玩家加入公会/公会成员进入公会流程图

2 注册回调

1)功能描述

查询群信息的调用结果会通过此回调异步通知到游戏 ,手Q和微信群功能共用此回调。

2)接口声明
public static void WGSetGroupObserver(WGGroupObserver Observer)
3)参数名称
参数名称 类型 说明
Observer WGGroupObserver 类 群功能信息类具体成员请跳转查看
4)返回值

5)示例代码
class GroupCallback : public WGGroupObserver
{
   // 手QV2群接口回调
    virtual void OnCreateGroupV2Notify(GroupRet& groupRet)
    {
        LOGD("GroupCallback OnCreateGroupV2Notify;flag:%d;errorCode:%d;desc:%s", groupRet.flag, groupRet.errorCode,
            groupRet.desc.c_str());
        int size = groupRet.mQQGroupInfoV2.qqGroups.size();
        std::string groupName = "";
        std::string groupId = "";
        if(size > 0){
            groupName = groupRet.mQQGroupInfoV2.qqGroups[0].groupName;
            groupId = groupRet.mQQGroupInfoV2.qqGroups[0].groupId;
        }
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnCreateGroupV2Notify;flag:%d;errorCode:%d;desc:%s;groupSize:%d;"
                "groupName:%s;groupId:%s", groupRet
                .flag,
            groupRet.errorCode, groupRet.desc.c_str(),size,groupName.c_str(),groupId.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnJoinGroupV2Notify(GroupRet &groupRet)
    {
        LOGD("QQGroupCallback OnJoinGroupV2Notify;flag:%d;errorCode:%d;desc:%s", groupRet.flag, groupRet.errorCode,
            groupRet.desc.c_str());
        char buffer[512];
        snprintf(buffer, 512, "QQGroupCallback OnJoinGroupV2Notify;flag:%d;errorCode:%d;desc:%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }

    virtual void OnQueryGroupInfoV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加查询群信息返回以后的逻辑
        LOGD("GroupCallback OnQueryGroupInfoV2Notify;flag:%d;errorCode:%d;desc:%s;relation:%d", groupRet.flag, groupRet
            .errorCode,
            groupRet.desc.c_str(),groupRet.mQQGroupInfoV2.relation);
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnQueryGroupInfoV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;relation:%d",
            groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),groupRet.mQQGroupInfoV2.relation);
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnUnbindGroupV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用解绑接口以后的返回结果
        std::string groupId = "";
        std::vector<QQGroup> groups = groupRet.mQQGroupInfoV2.qqGroups;
        if(!groups.empty()){
            groupId = groups[0].groupId;
        }
        LOGD("GroupCallback OnUnbindGroupV2Notify;flag:%d;errorCode:%d;desc:%s;groupId%s", groupRet.flag, groupRet
            .errorCode,
            groupRet.desc.c_str(),groupId.c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnUnbindGroupV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;groupId%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),groupId.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnBindExistGroupV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用绑定已存在的群接口以后的返回结果
        std::string groupId = "";
        std::vector<QQGroup> groups = groupRet.mQQGroupInfoV2.qqGroups;
        if(!groups.empty()){
            groupId = groups[0].groupId;
        }
        LOGD("GroupCallback OnBindExistGroupV2Notify;flag:%d;errorCode:%d;desc:%s;groupId%s", groupRet.flag, groupRet
            .errorCode,
            groupRet.desc.c_str(),groupId.c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnBindExistGroupV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;groupId%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),groupId.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }

    virtual void OnGetGroupCodeV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用获取群号接口以后的返回结果
        std::string groupId = "";
        std::string groupName = "";
        std::vector<QQGroup> groups = groupRet.mQQGroupInfoV2.qqGroups;
        if(!groups.empty()){
            groupId = groups[0].groupId;
            groupName = groups[0].groupName;
        }
        LOGD("GroupCallback OnGetGroupCodeV2Notify;flag:%d;errorCode:%d;desc:%s;groupId:%s;groupName:%s", groupRet
            .flag, groupRet
            .errorCode,
            groupRet.desc.c_str(),groupId.c_str(),groupName.c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnGetGroupCodeV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;"
                "groupId:%s;groupName:%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),groupId.c_str(),groupName.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnQueryBindGuildV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用查询工会信息接口以后的返回结果
        LOGD("GroupCallback OnQueryBindGuildV2Notify;flag:%d;errorCode:%d;desc:%s;guildId:%s;guildName:%s", groupRet
            .flag, groupRet
            .errorCode,
            groupRet.desc.c_str(),groupRet.mQQGroupInfoV2.guildId.c_str(),groupRet.mQQGroupInfoV2.guildName.c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnQueryBindGuildV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;"
                "guildId:%s;guildName:%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),groupRet.mQQGroupInfoV2.guildId.c_str(),groupRet.mQQGroupInfoV2.guildName.c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnRemindGuildLeaderV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用提醒会长绑群接口以后的返回结果
        LOGD("GroupCallback OnRemindGuildLeaderV2Notify;flag:%d;errorCode:%d;desc:%s", groupRet
            .flag, groupRet
            .errorCode,
            groupRet.desc.c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnRemindGuildLeaderV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
    virtual void OnGetGroupListV2Notify(GroupRet &groupRet)
    {
        // 游戏在此处添加调用查询工会信息接口以后的返回结果
        std::vector<QQGroup> groups = groupRet.mQQGroupInfoV2.qqGroups;
        std::stringstream ss;
        if(!groups.empty()){
            for(int i = 0 ; i < groups.size(); i++){
                ss << "groupId:" << groups[i].groupId << " ";
                ss << "groupName:" << groups[i].groupName<< " ";
            }
        }
        LOGD("GroupCallback OnGetGroupListV2Notify;flag:%d;errorCode:%d;desc:%s;groups:%s", groupRet.flag, groupRet.errorCode,
            groupRet.desc.c_str(),ss.str().c_str());
        char buffer[512];
        snprintf(buffer, 512, "GroupCallback OnGetGroupListV2Notify;flag:%d;errorCode:%d;desc:%s;msg:%s;"
                "groups:%s", groupRet.flag,
            groupRet.errorCode, groupRet.desc.c_str(),handlerWXErrorCode(groupRet).c_str(),ss.str().c_str());
        buffer[511] = '\0';
        displayResult(std::string(buffer));
    }
};
6)特殊说明

msdk3.2版本以后所有v2的群接口都使用新的v2群回调

7)名称解释

1 调用创建QQ群接口(v2)

1)功能描述

公会会长创建并直接绑定QQ群接口,结果会通过WGGroupObserver的OnCreateGroupV2Notify 回调给游戏。

2)接口声明
void WGPlatform::WGCreateQQGroupV2(GameGuild &gameGuild)
3)参数说明

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
guildName String (必填)公会昵称
zoneId String (必填)大区id
roleId String (必填)角色id
partition String (选填)区服id(小区),可以不填写,暂时无用
userZoneId String (选填)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服
userLabel String (选填)修改群名片,不填为不修改群名片,规则"【YYYY】zzzz" YYYY指用户的游戏数据,zzzz指用户游戏内的昵称
nickName String (选填)用户昵称
type String (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
areaId String (必填)游戏大区ID,"1"qq(默认),"2"微信
4)返回值

无,结果会通过WGGroupObserver的OnCreateGroupV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildName = "msdk";
gameGuild.guildName = "msdk"
gameGuild.guildId = "100703379";
gameGuild.roleId = "静静";
gameGuild.partition = "10"
gameGuild.zoneId = "100";
WGPlatform::GetInstance()->WGCreateQQGroupV2(gameGuild);
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

2 调用查询QQ群关系接口(v2)

1)功能描述

当公会已绑定群后,调用该接口查询用户与群关系信息接口;可返回用户与群的关系(群主、管理员、普通成员,非成员)信息,结果会通过WGGroupObserver的OnQueryGroupInfoV2Notify 回调给游戏。

2)接口声明
void WGQueryQQGroupInfoV2(const char *groupId);
3)参数说明
参数名称 类型 说明
groupId const char * 创建群时返回的群id(群id即为群号)
4)返回值

无,结果会通过WGGroupObserver的OnQueryGroupInfoV2Notify 回调给游戏。

5)示例代码:
WGPlatform::GetInstance()->WGQueryQQGroupInfoV2("10001");
6)特殊说明

7)名称解释

3 调用加入QQ群接口(v2)

1)功能描述

游戏内公会成员加入QQ群接口;调用该接口前,先调用WGQueryQQGroupInfoV2接口查询用户是否是群成员,当用户为非群成员身份时,显示加群按钮,结果会通过WGGroupObserver的OnJoinGroupV2Notify 回调给游戏。

2)接口声明

注意调用函数时参数传递的顺序

void WGJoinQQGroupV2(GameGuild &gameGuild,const char *groupId);
3)参数说明
参数名称 类型 说明
gameGuild GameGuild (必填)公会信息
groupId const char * (必填)群id(群id即为群号)

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
zoneId String (必填)大区id;如涉及跨服加入群,填写公会所在区服id
roleId String (必填)角色id
partition String (选填)区服id(小区),可以不填写,暂时无用
userZoneId String (选填;如涉及跨服加入群时必须传入,填写用户所在区服)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服
userLabel String (选填)修改群名片,不填为不修改群名片,规则"【YYYY】zzzz" YYYY指用户的游戏数据,zzzz指用户游戏内的昵称
nickName String (选填)用户昵称
type String (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
areaId String (必填)(游戏大区ID,"1"qq(默认),"2"微信
4)返回值

无,结果会通过WGGroupObserver的OnJoinGroupV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = "100703379";
gameGuild.roleId = "静静";
gameGuild.partition = "10"
gameGuild.zoneId = "100";
gameGuild.areaId = "123";
WGPlatform::GetInstance()->WGJoinQQGroupV2(gameGuild,"11002222");
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

4 调用解绑QQ群接口(v2)

1)功能描述

游戏内与QQ群解绑接口;如果用户解散了公会QQ群,公会和公会QQ群不会自动解绑,当群被解散,如何进行解绑操作,可以参考常见问题 里的说明,结果会通过WGGroupObserver的OnUnbindGroupV2Notify 回调给游戏。

2)接口声明
void WGUnbindQQGroupV2(GameGuild &gameGuild);
3)参数说明

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
guildName String (必填)公会名称
zoneId String (必填)大区id
userZoneId String (选填)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服
type String (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
areaId String (必填)游戏大区ID,"1"qq(默认),"2"微信
4)返回值

无,结果会通过WGGroupObserver的OnUnbindGroupV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = "100703379";
gameGuild.guildName = "msdk"
gameGuild.zoneId = "100";
WGPlatform::GetInstance()->WGUnbindQQGroupV2(gameGuild);
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

5 调用绑定已存在的手q群接口(v2)

1)功能描述

会长可将公会绑定到自己已经创建的QQ群接口;调用该接口前先调用WGGetQQGroupListV2接口拉取已创建的群列表;结果会通过WGGroupObserver的OnBindExistGroupV2Notify 回调给游戏。

2)接口声明
void WGBindExistQQGroupV2(GameGuild &gameGuild,const char *groupId,const char *groupName);
3)参数说明
参数名称 类型 说明
gameGuild GameGuild (必填)公会信息
groupId String (必填)群id(群id即为群号)
groupName String (必填)群昵称

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
roleId String (必填)角色ID
zoneId String (必填)大区id
userZoneId String (选填)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服
type String (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
areaId String (必填)游戏大区ID,"1"qq(默认),"2"微信
4)返回值

无,结果会通过WGGroupObserver的OnBindExistGroupV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = "100703379";
gameGuild.roleId = "10"
gameGuild.zoneId = "100";
WGPlatform::GetInstance()->WGBindExistQQGroupV2(gameGuild,"111022","msdk");
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

6 调用获取绑定的手q群的群信息接口(v2)

1)功能描述

获取绑定的手q群的群信息;通过公会ID能拉取到QQ群的群号码,则有绑群;在创建群时候若没有输入公会名称,则此时获取的群名称为空。 结果会通过WGGroupObserver的OnGetGroupCodeV2Notify 回调给游戏。

2)接口声明
void WGGetQQGroupCodeV2(GameGuild &gameGuild);
3)参数说明

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
zoneId String (必填)大区id
type String (选填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
4)返回值

无,结果会通过WGGroupObserver的OnGetGroupCodeV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = "100703379";
gameGuild.roleId = "10"
gameGuild.zoneId = "100";
WGPlatform::GetInstance()->WGGetQQGroupCodeV2(gameGuild);
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

7 调用查询群绑定的工会接口(v2)

1)功能描述

根据群ID(群号)查询绑定的公会信息,结果会通过WGGroupObserver的 OnQueryBindGuildV2Notify 回调给游戏。

2)接口声明
void WGQueryBindGuildV2(const char *groupId, const int type = 0);
3)参数说明
参数名称 类型 说明
groupId const char * (必填)群id(群id即为群号)
type int (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
4)返回值

无,结果会通过WGGroupObserver的 OnQueryBindGuildV2Notify 回调给游戏。

5)示例代码:
WGPlatform::GetInstance()->WGQueryBindGuildV2("111002",0);
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

8 调用查询创建的QQ群列表接口(v2)

1)功能描述

当会长将公会绑定自己已经创建的QQ群时,用于查询已创建的QQ群列表,结果会通过WGGroupObserver的 OnGetGroupListV2Notify 回调给游戏。

2)接口声明
void WGGetQQGroupListV2();
3)参数说明

4)返回值

无,结果会通过WGGroupObserver的 OnGetGroupListV2Notify 回调给游戏。

5)示例代码:
WGPlatform::GetInstance()->WGGetQQGroupListV2();
6)特殊说明

7)名称解释

9 调用提醒工会会长绑群接口(v2)

1)功能描述

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

2)接口声明

注意调用函数时参数传递的顺序

void WGRemindGuildLeaderV2(GameGuild &gameGuild);
3)参数说明

GameGuild:设置参数说明

参数名称 类型 说明
guildId String (必填)公会id;字符串里需要使用数值,如:"123456"
zoneId String (必填)大区id
roleId String (必填)角色id
roleName String (必填)角色名称
leaderOpenid String (必填)公会会长的openid
leaderRoleId String (必填)公会会长的roleid
leaderZoneId String (选填)会长区服信息,会长可以转让给非本区服的人
userZoneId String (选填)用户的区服ID,会长可能转让给非本区服的人,所以公会区服不一定是用户区服
type String (必填)群类型,默认为0(公会类型);当游戏内需要创建多种类型公会群时,联系手Q侧排期并由手Q侧提供具体值
areaId String (必填)游戏大区ID,"1"qq(默认),"2"微信
4)返回值

无,结果会通过WGGroupObserver的 OnRemindGuildLeaderV2Notify 回调给游戏。

5)示例代码:
GameGuild gameGuild;
gameGuild.guildId = "100703379";
gameGuild.roleId = "12";
gameGuild.roleName = "静静"
gameGuild.zoneId = "100";
gameGuild.leaderOpenid = "78AADD8DC9CF80E655EE68039B1D02C9";
gameGuild.leaderZoneId= "1234";
WGPlatform::GetInstance()->WGRemindGuildLeaderV2(gameGuild);
6)特殊说明

按照参数说明填好必填参数,选填参数按照需求填

7)名称解释

微信群功能

1 概要说明

您先注册群功能回调然后再按推荐流程调用微信群功能接口即可接入微信群功能 请参见 注册群功能回调 接口调用流程如下图:

group_wx

2 注册回调

请参见 注册群功能回调

3 调用查询微信群信息接口

1)功能描述

游戏内查询公会微信群信息,用于检查是否创建微信公会群以及对应用户是否加入群,结果会通过WGGroupObserver的OnQueryGroupInfoNotify 回调给游戏。

2)接口声明
void WGQueryWXGroupInfo(unsigned char *unionid, unsigned char *openIdList);
3)参数说明
参数名称 类型 说明
unionid unsigned char * 公会id
openIdList unsigned char * 待检查是否在群里的用户openid列表,逗号分割
4)返回值

无,调用结果会通过 WGGroupObserver的OnQueryGroupInfoNotify 回调给游戏。

5)示例代码
WGPlatform::GetInstance()->WGQueryWXGroupInfo((unsigned char *)"union1", 
                                              (unsigned char *)"openid");
6)特殊说明

7)名称解释

4 调用创建公会微信群接口

1)功能描述

游戏内创建公会微信群,结果会通过 WGGroupObserver的OnCreateWXGroupNotify 回调给游戏。

2)接口声明
void WGCreateWXGroup(unsigned char *unionid, unsigned char *chatRoomName, unsigned char *chatRoomNickName);
3)参数说明
参数名称 类型 说明
unionid unsigned char * 公会id
chatRoomName unsigned char * 聊天群名称
chatRoomNickName unsigned char * 用户在聊天群的自定义昵称
4)返回值

无,结果会通过 WGGroupObserver的OnCreateWXGroupNotify 回调给游戏。

5)示例代码
WGPlatform::GetInstance()->WGCreateWXGroup((unsigned char *)"union1",
                                           (unsigned char *)"MSDK公会", 
                                           (unsigned char *)"用户的群昵称");
6)特殊说明

7)名称解释

5 调用加入公会微信群接口

1)功能描述

游戏内加入公会微信群,结果会通过 WGGroupObserver的OnJoinWXGroupNotify 回调给游戏。

2)接口声明
void WGJoinWXGroup(unsigned char *unionid, unsigned char *chatRoomNickName);
3)参数说明
参数名称 类型 说明
unionid unsigned char * 公会id
chatRoomNickName unsigned char * 用户在聊天群的自定义昵称
4)返回值

无,结果会通过 WGGroupObserver的OnJoinWXGroupNotify 回调给游戏。

5)示例代码
WGPlatform::GetInstance()->WGJoinWXGroup((unsigned char *)"union1", 
                                         (unsigned char *)"用户的群昵称");
6)特殊说明

7)名称解释

6 调用查询微信群状态接口(2.17.1a及以上版本)

1)功能描述

游戏内查询指定的公会id是否已经建群或者是否已经加群,结果会通过 WGGroupObserver的OnQueryWXGroupStatusNotify 回调给游戏。

2)接口声明
void WGQueryWXGroupStatus(unsigned char *groupId, eStatusType opType);
3)参数说明
参数名称 类型 说明
unionid unsigned char * 公会群id
type eStatusType 枚举类型:ISCREATED(是否建群),ISJONINED(是否加群)
4)返回值

无,结果会通过 WGGroupObserver的OnQueryWXGroupStatusNotify 回调给游戏。

5)示例代码
WGPlatform::GetInstance()->WGQueryWXGroupStatus((unsigned char *)"union1", (eStatusType)type);
6)特殊说明

7)名称解释

7 解绑微信群接口(2.17.1a及以上版本)

1)功能描述

游戏内解绑指定的公会群,结果会通过 WGGroupObserver的OnUnbindGroupNotify 回调给游戏。

2)接口声明
void WGUnbindWeiXinGroup(unsigned char *groupId);
3)参数说明
参数名称 类型 说明
unionid unsigned char * 公会id
4)返回值

无,结果会通过 WGGroupObserver的OnUnbindGroupNotify 回调给游戏。

5)示例代码
WGPlatform::GetInstance()->WGUnbindWeiXinGroup((unsigned char *)"union1");
6)特殊说明

7)名称解释

常见问题

  • 如果QQ群被解散有两种方式可以取消绑定关系:
    1.会长调用解绑接口解散群关系;
    2.当工会成员调用加群接口时,此时是查询不到群ID的,则会默认进行解绑。
    如果QQ群被解散而没有进行过以上任意一种操作时,则绑定关系不会自动消失。
    3.会长转让后,新会长也可以进行解绑操作