데이터 구조
Unity3D
CallbackRet
LoginRet
TokenRet
eTokenType
WakeupRet
LocationRet
RelationRet
PersonInfo
ShareRet
GroupRet
QQGroupInfo
WXGroupInfo
eFlag
eQQScene
eWechatScene
ePlatform
eBuglyLogLevel
NoticeInfo
Android
CallbackRet
LoginRet
TokenRet
eTokenType
WakeupRet
LocationRet
RelationRet
PersonInfo
ShareRet
GroupRet
QQGroupInfo
WXGroupInfo
eFlag
eQQScene
eWechatScene
ePlatform
eBuglyLogLevel
NoticeInfo
IOS
CallbackRet
LoginRet
TokenRet
eTokenType
WakeupRet
LocationRet
RelationRet
PersonInfo
ShareRet
GroupRet
QQGroupInfo
WXGroupInfo
eFlag
eQQScene
eWechatScene
ePlatform
eBuglyLogLevel
NoticeInfo
기타
데이터 구조
시스템 도구
데이터 구조 / Unity3D / CallbackRet

CallbackRet

public abstract class CallbackRet{

    public int flag=eFlag.eFlag_Error;//결과

    public string desc="";

    public int platform=0;//플랫폼 유형

}

LoginRet

사용자 로그인 후 획득한 정보를 저장

public class LoginRet: CallbackRet{

    public string open_id=""; //사용자 계정 고유 표식

    public string user_id=""; //사용자 ID, 보류, 게임 관심 불요

    public string pf="";      //결제에 사용    WGGetPf() 호출로 획득

    public string pf_key="";  //결제에 사용     WGGetPfKey() 호출로 획득

    public List<TokenRet> token=new List<TokenRet>(); //저장 토큰 목록

}

TokenRet

토큰 정보

public class TokenRet{

        public int type=0;         //토믄 유형  eTokenType 유형

        public string value="";    //토큰 value

        public long expiration=0;  //토큰 기한 만료 시간(게임 관심 불요)

}

eTokenType

token 종류

public class eTokenType{

    public const int eToken_QQ_Access=1;   //모바일QQ accesstoken

    public const int eToken_QQ_Pay=2;      //모바일qQ paytoken

    public const int eToken_WX_Access=3;   //위챗 accesstoken

    public const int eToken_WX_Code=4;     //게임에서 관심 불요

    public const int eToken_WX_Refresh=5;  //위챗 refreshtoken

}

|플랫폼|token 유형|token 기능|type|유효 기한|

|: ------- :|: ------- :|: ------- :|: ------- :|: ------- :|: ------- :|

|모바일QQ |accesstoken|모바일QQ 개인, 친구, 관계 사슬, 공유 등 검색 기능|eToken_QQ_Access| 90일|

|모바일QQ |paytoken |결제 관련|eToken_QQ_Pay| 7일|

|위챗| accesstoken|위챗 개인, 친구, 관계 사슬, 공유 등 검색 기능| eToken_WX_Access| 2시간|

|위챗|refreshtoken| 새로고침accesstoken| eToken_WX_Refresh| 30일|

WakeupRet

게임 저장이 플랫폼에 의해 소환될 때, 플랫폼이 클라이언트 정보를 전달

public class WakeupRet: CallbackRet{

    /** 전송하는 openid */

    public string open_id="";

    /** 위챗 메시지 내 대응하는 mediaTagName */

    public string media_tag_name="";

    /** 메시지를 열어 게임을 불러올 때 게임에 제공 */

    public string messageExt="";

    /** 언어     현재 위챗 5.1 이상에서만 사용, 모바일QQ 사용 안함 */

    public string lang="";

    /** 국가     현재 위챗 5.1 이상에서만 사용, 모바일QQ 사용 안함 */

    public string country="";

    public List<KVPair> extInfo=new List<KVPair>();

  ...

}

LocationRet

지리적 위치 정보

public class LocationRet: CallbackRet{

    public double longitude;

    public double latitude;

    ...

}

RelationRet

관계 사슬 정보, 곧 “같은 그룹” 친구 정보

public class RelationRet : CallbackRet{

    public List<PersonInfo> persons=new List<PersonInfo>();

    public List<PersonInfo> _persons {

        get{return persons;}

        set{ persons=value;}

    }

  //...

    public RelationRet(){

    }

}

PersonInfo

친구 정보

public class PersonInfo{

    public String nickName="";

    public String openId="";

    public String gender="";

    public String pictureSmall="";

    public String pictureMiddle="";

    public String pictureLarge="";

    public String province="";

    public String city="";

    public String gpsCity="";



    public float distance=0;

    public bool isFriend=false;

    public long timestamp=0;



    public String lang="";

    public String country="";

}

ShareRet

정보 공유

public class ShareRet: CallbackRet{

    public string extInfo="";

    ...

}

GroupRet

그룹 정보

public class GroupRet: CallbackRet{

        public int errorCode=0;

        public QQGroupInfo mQQGroupInfo ;

        public WXGroupInfo mWXGroupInfo ;

        ...

}

QQGroupInfo

QQ그룹 정보

public class QQGroupInfo{

    public String groupName=""; /*그룹 이름 */

    public String fingerMemo="";/*그룹 관련 소개 */

    public String memberNum=""; /*그룹 구성원 수 */

    public String maxNum=""; /*해당 그룹 수용 가능 구성원 수 */

    public String ownerOpenid=""; /*그룹 주인 openid */

    public String unionid=""; /*해당 QQ 그룹과 결합된 길드 ID */

    public String zoneid=""; /*대형 구역 ID */

    public String adminOpenids=""; /*관리자 openid. 관리자가 복수일 경우, “,”로 구분. 예: 0000000000000000000000002329FBEF,0000000000000000000000002329FAFF */

    public String groupOpenid="";  /*게임 길드 ID와 결합된 QQ 그룹의 groupOpenid */

    public String groupKey="";   /*가입해야 할 QQ 그룹에 대응하는 key */

}

WXGroupInfo

위챗 그룹 정보

public class WXGroupInfo{

    public String openIdList="";      /* 그룹 구성원 openID */

    public String memberNum="";       /* 그룹 구성원 수 */

    public String chatRoomURL="";     /* 그룹 채팅인 경우 URL */

}

eFlag

로그인 반환 코드

public class eFlag{

    public const int eFlag_Succ=0;

    /** QQ&QZone login fail and can't get accesstoken */

    public const int eFlag_QQ_NoAcessToken=1000;

    /** QQ&QZone user has cancelled login process */

    public const int eFlag_QQ_UserCancel=1001;



    /** QQ&QZone login fail (tencentDidNotLogin) */

    public const int eFlag_QQ_LoginFail=1002;

    /** QQ&QZone networkErr */

    public const int eFlag_QQ_NetworkErr=1003;

    /** QQ is not install */

    public const int eFlag_QQ_NotInstall=1004;

    /** QQ don't support open api */

    public const int eFlag_QQ_NotSupportApi=1005;

    /** QQ&QZone networkErr */

    public const int eFlag_QQ_AccessTokenExpired=1006;

    /** pay token 기한 만료 시간 */

    public const int eFlag_QQ_PayTokenExpired=1007;



    /** Weixin is not installed */

    public const int eFlag_WX_NotInstall=2000;

    /** Weixin don't support api */

    public const int eFlag_WX_NotSupportApi=2001;

    /** Weixin user has cancelled */

    public const int eFlag_WX_UserCancel=2002;

    /** Weixin User has denys */

    public const int eFlag_WX_UserDeny=2003;

    public const int eFlag_WX_LoginFail=2004;

    /** Weixin 토큰 새로고침 성공 */

    public const int eFlag_WX_RefreshTokenSucc=2005;

    /** Weixin 토큰 새로고침 실패 */

    public const int eFlag_WX_RefreshTokenFail=2006;

    /** Weixin accessToken 기한 만료, refreshtoken으로 토큰 새로고침 내에서 테스트 */

    public const int eFlag_WX_AccessTokenExpired=2007;

    /** Weixin refresh도 기한 만료 */

    public const int eFlag_WX_RefreshTokenExpired=2008;



    public const int eFlag_Error=-1;



    /** 자동 로그인 실패, 재승인 필요함, 로컬 토큰 기한 만료를 포함한 새로고침 등 모든 오류*/

    public const int eFlag_Local_Invalid=-2;



    /** 화이트리스트에 없음*/

    public const int eFlag_NotInWhiteList=-3;

    /** 사용자에게 위치 정보 서비스를 활성화하도록 안내해야 함 */

    public const int eFlag_LbsNeedOpenLocationService=-4;

    /** d위치 정보 획득 실패     */

    public const int eFlag_LbsLocateFail=-5;



    /* 빠른 로그인 관련 반환값 */

    /**로그인 페이지에 진입해야 함 */

    public const int eFlag_NeedLogin=3001;

    /**URL을 통한 로그인 성공 */

    public const int eFlag_UrlLogin=3002;

    /**팝업 메시지로 다른 계정을 표시해야 함 */

    public const int eFlag_NeedSelectAccount=3003;

    /**URL을 통해 토큰 새로고침 */

    public const int eFlag_AccountRefresh=3004;

    /*검사 중인 token의 논리 추가 */

    public const int eFlag_Checking_Token=5001;

    /**현재 로그인 중임, 로그인 콜백을 기다린 후에 재시도하십시오. */

    public const int eFlag_Logining=5002;

    /**현재 로그인 중임, 로그인 콜백을 기다린 후에 재시도하십시오 */

    public const int eFlag_Login_Timeout=5003;

    /**인터페이스 호출 횟수 과다 */

    public const int eFlag_RequestTooFrequently=5004;



    /* 해당 기능은 Guest 모드에서 사용 불가 */

    public const int eFlag_InvalidOnGuest=-7;

    /* Guest의 토큰 무효화됨 */

    public const int eFlag_Guest_AccessTokenInvalid=4001;

    /* Guest 모드 로그인 실패 */

    public const int eFlag_Guest_LoginFailed=4002;

    /* Guest 모드 등록 실패 */

    public const int eFlag_Guest_RegisterFailed=4003;

}

eQQScene

모바일QQ 환경 열거

public enum eQQScene{

    QQScene_None=0,

    QQScene_QZone=1, //QQ 스페이스

    QQScene_Session=2 //모바일QQ 채팅

}

eWechatScene

위챗 환경 열거

public enum eWechatScene{

    WechatScene_Session=0, //위챗 채팅

    WechatScene_Timeline=1 //위챗 모멘트

}

ePlatform

플랫폼 열거

public enum ePlatform{

    ePlatform_None=0, //로그인되어 있지 않음

    ePlatform_Weixin=1, //위챗 플랫폼

    ePlatform_QQ=2, //모바일QQ 플랫폼

    ePlatform_WTLogin=3, //WTLogin 로그인

    ePlatform_QQHall=4, //모바일QQ 게임 로비

    ePlatform_Guest=5, //게스트 로그인

    ePlatform_Auto=6 //자동 등록, 이전 플랫폼 사용

}

NoticeInfo

공지 정보

public class NoticeInfo{

    public String msg_id; /* 공지 id */

    public String open_id; /* 사용자 open_id */

    public String msg_url ; /* 공지 이동 링크 */

    public int msg_type ; /* 공지 디스플레이 유형, 스크롤 팝업 */

    public String msg_scene ; /* 공지 디스플레이 환경, 관리 클라이언트 백그라운드 설정 */

    public String start_time; /* 공지 표시 활성화 시작 시간 */

    public String end_time ; /* 공지 표시 활성화 종료 시간 */

    public String update_time ; /* 공지 업데이트 시간 */

    public int content_type;/* 공지 내용 유형, eMSG_NOTICETYPE */

    public int msg_order;/*공지 우선 등급 */



    /*문서 공지 특수 필드 */

    public String msg_title ; /* 공지 제목 */

    public String msg_content;/* 공지 내용 */



    /*웹페이지 공지 특수 필드 */

    public String content_url;

    public List<PicInfo> picArray=new List<PicInfo>();



    /*파라미터 자체 정의*/

    public String mNoticeCustom="";

}

보고 로그에서 bugly의 로그 등급으로

eBuglyLogLevel

public enum eBuglyLogLevel{

    eBuglyLogLevel_S=0, /* Silent */

    eBuglyLogLevel_E=1, /* Error */

    eBuglyLogLevel_W=2, /* Warnning */

    eBuglyLogLevel_I=3, /* Info */

    eBuglyLogLevel_D=4, /* Debug */

    eBuglyLogLevel_V=5, /* Verbose */

 }

eApiName

public enum eApiName{

    eApiName_WGSendToQQWithPhoto=0,

    eApiName_WGJoinQQGroup=1,

    eApiName_WGAddGameFriendToQQ=2,

    eApiName_WGBindQQGroup=3

}

LocalMessageIOS

public class LocalMessageIOS{

    public String fireDate { get; set; }        /*로컬 푸시 발송 시간, 형식 yyyy-MM-dd HH:mm:ss */

    public String alertBody { get; set; }       /*푸시 내용 */

    public int badge { get; set; }              /*코너 표시 숫자 */

    public String alertAction { get; set; }     /*팝업창 교환 버튼 텍스트 내용(기본값은 “활성화") */

    public List<KVPair> userInfo { get; set; }  /*파라미터 자체 정의, 표식을 이용해 푸시 및 부가 정보 추가가 가능 */

    public String userInfoKey { get; set; }     /*로컬 푸시의 프론트에서 푸시하는 표식 Key */

    public String userInfoValue { get; set; }   /*로컬 푸시의 프론트에서 푸시하는 표식 Key의 대응하는 값 */



    public LocalMessageIOS(){

        fireDate="";

        alertBody="";

        alertAction="";

        userInfoKey="";

        userInfoValue="";

    }

}

LocalMessageAndroid

public class LocalMessageAndroid{

    public int type { get; set; }                   /* 메시지 유형 type: 1: 통지, 2: 메시지 */

    public int action_type { get; set; }            /* 작동 유형, 1 활성화 activity 또는 app 자체, 2 브라우저 열기, 3 Intent 열기, 4 패키지 이름으로 애플리케이션 열기. 기본값은 1 */

    public String title { get; set; }               /* 메시지 제목 title: 메시지 제목 */

    public String content { get; set; }             /* 메시지 내용 content 메시지 내용 */

    public String custom_content { get; set; }      /* 메시지 자체 정의 내용 */

    public int icon_type { get; set; }              /* 알림창 아이콘은 애플리케이션 내 아이콘, 또는 업로드 아이콘(0은 애플리케이션 내 아이콘, 1은 업로드 아이콘, 기본값은 0) */

    public int lights { get; set; }                 /* 조명 정멸 여부(0 점멸 안함, 1 점멸, 기본값은 1) */

    public int ring { get; set; }                   /* 벨소리 여부(0 안 울림, 1울림, 기본값은 1) */

    public int vibrate { get; set; }                /* 진동 여부(0 안 울림, 1 울림, 기본값은 1) */

    public int style_id { get; set; }               /* Web 클라이언트 코드 build_id의 통지 형식 대응 여부 설정, 기본값은 1, 0은 대응 안함, 1은 대응 */

    public long builderId { get; set; }             /* 메시지 형식, 기본값은 0 또는 설정 안함 */

    public String activity { get; set; }            /* 지정 Activity 열기, 예: com.qq.xgdemo.AboutActivity. 작동 유형이 1 또는 4일 때 유효함 */

    public String packageDownloadUrl { get; set; }

    public String packageName { get; set; }         /* 다른 앱의 패키지 이름 풀업, 작동 유형 4일 때 유효함 */

    public String icon_res { get; set; }            /* 앱 내 아이콘 파일 이름(xg.png) 또는 다움로드 아이콘의 url 주소, 예: xg 또는 이미지 url */

    public String date { get; set; }                /* 팝업 통지의 일시, 형식은”yyyyMMdd” */

    public String hour { get; set; }                /* 팝업 통지 일시의 시 */

    public String min { get; set; }                 /* 팝업 통지 일시의 분 */

    public String intent { get; set; }              /* intent 열기 설정, 예(10086 다이얼 인터페이스) intent:10086#Intent;scheme=tel;action=android.intent.action.DIAL;S.key=value;end 작동 유형 3일 때 유효함 */

    public String url { get; set; }                 /* url 열기, 예: http://www.qq.com. 작동 유형 2일 때 유효함 */

    public String ring_raw { get; set; }            /* 지정된 앱 내 사운드(ring.mp3), 예: ring */

    public String small_icon { get; set; }          /* 지정된 상태창의 소형 이미지(xg.png), 예: xg */



    public LocalMessageAndroid(){

        type=1;

        action_type=-1;

        icon_type=-1;

        lights=-1;

        ring=-1;

        vibrate=-1;

        style_id=-1;

        builderId=-1;

        content="";

        custom_content="";

        activity="";

        packageDownloadUrl="";

        packageName="";

        icon_res="";

        date="";

        hour="";

        intent="";

        min="";

        title="";

        url="";

        ring_raw="";

        small_icon="";

    }

}

eMSDK_SCREENDIR

화면 방향

public enum eMSDK_SCREENDIR{

    eMSDK_SCREENDIR_SENSOR=0,     /*가로, 세로 화면*/

    eMSDK_SCREENDIR_PORTRAIT=1,   /*세로 화면*/

    eMSDK_SCREENDIR_LANDSCAPE=2,  /*가로 화면*/