개요
관계 사슬 모듈은 MSDK에서 제공하며, 모바일QQ, 위챗의 친구 관계를 기초로 하는 정보 검색 서비스입니다. 관계 사슬 모듈은 다음과 같은 기능 환경을 제공합니다.
1) 개인 정보 검색 (PersonInfo): 닉네임(nickname), OpenId(openId), 성별(gender), 소형 프로필 사진 40x40(pictureSmall), 중간 크기 프로필 사진 60x60(pictureMiddle), 대형 프로필 사진100x100(pictureLarge), 출신 성(지역)(province), 도시(city)
2) 친구 정보 찾기: 플레이한 적이 있는 현재 게임의 친구 정보만 검색할 수 있으며, 각 친구의 상세 정보는 해당 개인의 상세 정보(PersonInfo)와 동일합니다.
3) QQ 친구 추가: 게임 내에서 당사의 인터페이스인 [QQ 친구 추가)#IOS_AddQQFriend)를 통해 친구 추가 기능을 수행할 수 있습니다.
다음 환경에서 개인 정보 검색, 친구 정보 검색 기능을 이용할 수 있습니다.
4) 게임 순위 (예: [검협정연] 친구 순위)
QQ 친구 호출 인터페이스: WGQueryQQGameFriendsInfo
기능1: WGQueryQQGameFriendsInfo를 호출해 함께 플레이하는 QQ 친구의 데이터를 획득합니다.
기능2: 선물하기: 백엔드 공유 기능 중 하나로, 그 특징은 모바일QQ를 풀업하지 않고도 서비스 클라잉언트를 통해 직접 친구와 공유할 수 있으며, 공유 모듈 “모바일QQ 백엔드 공유”를 참조할 수 있습니다.
기능3: 모바일QQ 함께 플레이하는 친구 게임 입구
기능4: 친구 초대하기: QQ 채팅에서 공유할 수 있는 기능으로, 공유 모듈 “QQ 구조화 공유”를 참조하실 수 있습니다.
위챗 친구 호출 인터페이스: WGQueryWXGameFriendsInfo
기능1: WGQueryWXGameFriendsInfo를 호출해 함께 플레이하는 위챗 친구의 데이터를 획득합니다.
기능2: 선물하기: 백엔드 공유 기능 중 하나로, 그 특징은 위챗을 풀업하지 않고도 서비스 클라잉언트를 통해 직접 친구와 공유할 수 있으며, 공유 모듈 “위챗 백엔드 공유”를 참조할 수 있습니다.
기능3: 위챗 함께 플레이하는 친구 게임 입구
기능4: 친구 초대하기: 위챗 채팅에서 공유할 수 있는 기능으로, 공유 모듈 “위챗 구조화 공유”를 참조하실 수 있습니다.
5) 친구 추가
액세스 내비게이션
1 사전 요구 사항
1) 초기화 모듈 설명에 따라 초기화를 완료했습니다.
2) 사용자 모바일QQ/위챗 인증 등록 확인
2 Demo 예시를 참고하십시오.
1) 모바일QQ 개인 정보의 예시는 MSDKDemo/LoginSucceedVC.mm 파일의 onClickPersonalInfo 메소드를 참조하십시오.
2) 모바일QQ 친구 정보의 예시는 MSDKDemo/LoginSucceedVC.mm 파일의 onClickGoodFriendsInfo 메소드를 참조하십시오.
3) 위챗 개인 정보의 예시는 MSDKDemo/LoginSucceedVC.mm 파일의 onClickPersonalInfo 메소드를 참조하십시오.
4) 모바일QQ 친구 정보의 예시는 MSDKDemo/LoginSucceedVC.mm 파일의 onClickGoodFriendsInfo 메소드를 참조하십시오.
개인 정보 검색
개요
1) 모바일QQ 사용자(WGQueryQQMyInfo) 사용자가 모바일QQ 승인 후에, 게임에서 사용자의 닉네임, 프로필 사진 등의 기타 정보를 필요로 하며, WGQueryQQMyInfo를 호출할 수 있습니다. 다음과 같은 개인 정보가 포함됩니다. 닉네임(nickname), OpenId(openId), 성별(gender), 소형 프로필 사진(pictureSmall), 중간 크기 프로필 사진(pictureMiddle), 대형 프로필 사진(pictureLarge).
2) 위챗 사용자(WGQueryWXMyInfo) 사용자가 위챗 승인 후에, 게임에서 사용자의 닉네임, 프로필 사진 등의 기타 정보를 필요로 하며, WGQueryWXMyInfo를 호출할 수 있습니다. 다음과 같은 개인 정보가 포함됩니다. 닉네임(nickname), OpenId(openId), 성별(gender), 소형 프로필 사진(pictureSmall), 중간 크기 프로필 사진(pictureMiddle), 대형 프로필 사진(pictureLarge), 성(지역)(province), 도시(city).
콜백 등록
1) 기능 설명
MSDK의 관계 사슬 콜백을 받기 위해서는 게임에서 콜백을 등록하고 처리해야 합니다. 콜백 등록은 WGPlatformObserver 카테고리의 OnRelationNotify 가상 방식으로 구현해야 합니다.
2) 인터페이스 선언
void OnRelationNotify(RelationRet& relationRet)
3) 파라미터 설명
반환값 명칭 | 유형 | 설명 |
---|---|---|
relationRet | RelationRet 카테고리 | 관계 사슬 정보 구조체 |
4) 반환값
없음
5) 예시 코드
void MyObserver::OnRelationNotify(RelationRet &relationRet)
{
NSLog(@"relation callback");
NSLog(@"count == %lu",relationRet.persons.size());
NSMutableArray *personInfoArr = [NSMutableArray new];
for (int i = 0; i < relationRet.persons.size(); i++)
{
PersonInfo logInfo = relationRet.persons[i];
NSMutableDictionary *personInfoDict = [NSMutableDictionary new];
NSString *nickName = [NSString stringWithCString:(const char*)logInfo.nickName.c_str() encoding:NSUTF8StringEncoding];
NSString *openID = [NSString stringWithCString:(const char*)logInfo.openId.c_str() encoding:NSUTF8StringEncoding];
NSString *gender = [NSString stringWithCString:(const char*)logInfo.gender.c_str() encoding:NSUTF8StringEncoding];
NSString *pictureSmall = [NSString stringWithCString:(const char*)logInfo.pictureSmall.c_str() encoding:NSUTF8StringEncoding];
NSString *pictureMiddle = [NSString stringWithCString:(const char*)logInfo.pictureMiddle.c_str() encoding:NSUTF8StringEncoding];
NSString *pictureLarge = [NSString stringWithCString:(const char*)logInfo.pictureLarge.c_str() encoding:NSUTF8StringEncoding];
NSString *province = [NSString stringWithCString:(const char*)logInfo.provice.c_str() encoding:NSUTF8StringEncoding];
NSString *city = [NSString stringWithCString:(const char*)logInfo.city.c_str() encoding:NSUTF8StringEncoding];
NSString *gpsCity = [NSString stringWithCString:(const char*)logInfo.gpsCity.c_str() encoding:NSUTF8StringEncoding];
NSString *country = [NSString stringWithCString:(const char*)logInfo.country.c_str() encoding:NSUTF8StringEncoding];
}
}
6) 특수 설명
없음
7) 용어 해석
없음
호출 인터페이스
1) 기능 설명
게임에서 WGQueryQQMyInfo/WGQueryWXMyInfo 인터페이스 호출을 통해 개인 정보를 검색해 다음 정보를 얻을 수 있습니다.: 닉네임(nickname), OpenId(openId), 성별(gender), 소형 프로필 사진 40x40(pictureSmall), 중간 크기 프로필 사진 60x60(pictureMiddle), 대형 프로필 사진100x100(pictureLarge), 출신 성(지역)(province), 도시(city)
2) 인터페이스 선언
bool WGQueryQQMyInfo();
bool WGQueryWXMyInfo();
3) 파라미터 설명
없음
4) 반환값
없으며, 결과는 RelationEvent를 통해 콜백하며, 콜백 설정은 등록 콜백을 참조하십시오.
5) 예시 코드
if (self.platform == 2)//eplatform_QQ
{
WGPlatform::GetInstance()->WGQueryQQMyInfo();
}
else if (self.platform == 1)//eplatform_Weixin
{
WGPlatform::GetInstance()->WGQueryWXMyInfo();
}
6) 특수 설명
개인 정보 내에 OpenId 정보가 없을 경우, 필요한 OpenId 정보는 로그인 모듈이 획득한 토큰 인터페이스 WGGetLoginRecord
를 통해 획득할 수 있습니다.
개인 정보 검색 및 같이 플레이하는 친구 검색 콜백은 eRelationRetType를 통해 구분할 수 있습니다.
7) 용어 해석
없음
함께 플레이하는 친구 정보 검색
개요
1) 모바일QQ 사용자(WGQueryQQGameFriendsInfo) 사용자는 모바일QQ 승인 후에 WGQueryQQGameFriendsInfo를 통해 게임 내 친구 정보(친구 점수 순위 등)를 풀업할 수 있습니다. 친구 정보는 개인 정보를 참조합니다.
2) 위챗 사용자(WGQueryWXGameFriendsInfo) 사용자는 위챗 승인 후에 WGQueryWXGameFriendsInfo를 통해 게임 내 친구 정보(친구 점수 순위 등)를 풀업할 수 있습니다. 친구 정보는 개인 정보를 참조합니다.
콜백 등록
해당 인터페이스가 개인 정보 검색 인터페이스와 동일한 콜백을 사용할 경우, 이미 설정되어 있다면 중복 설정할 필요가 없습니다. 설정되어 있지 않은 경우에는 콜백 설정 RelationRet 대상의 persons 속성이 하나의 List인지 확인하고, 그중에서 각 PersonInfo 대상이 친구 정보입니다. 친구 정보에는 다음 사항들이 포함됩니다. OpenId(openId), 닉네임(nickname), OpenId(openId), 성별(gender), 소형 프로필 사진 40x40(pictureSmall), 중간 크기 프로필 사진 60x60(pictureMiddle), 대형 프로필 사진100x100(pictureLarge), 출신 성(지역)(province), 도시(city)
호출 인터페이스
1) 기능 설명
게임에서 WGQueryQQGameFriendsInfo/WGQueryWXGameFriendsInfo 인터페이스 호출을 통해 해당 게임을 플레이하는 친구의 개인 정보를 검색해 다음 정보를 얻을 수 있습니다.: 닉네임(nickname), OpenId(openId), 성별(gender), 소형 프로필 사진 40x40(pictureSmall), 중간 크기 프로필 사진 60x60(pictureMiddle), 대형 프로필 사진100x100(pictureLarge), 출신 성(지역)(province), 도시(city)
2) 인터페이스 선언
bool WGQueryQQGameFriendsInfo();
bool WGQueryWXGameFriendsInfo();
3) 파라미터 설명
없음
4) 반환값
없으며, 결과는 RelationEvent를 통해 콜백하며, 콜백 설정은 등록 콜백을 참조하십시오.
5) 예시 코드
if (self.platform == 2)//eplatform_QQ
{
WGPlatform::GetInstance()->WGQueryQQGameFriendsInfo();
}
else if (self.platform == 1)//eplatform_Weixin
{
WGPlatform::GetInstance()->WGQueryWXGameFriendsInfo();
}
6) 특수 설명
1) 개인 정보(예: 프로필 사진, 이름), 친구 정보(예: 프로필 사진, 이름) 획득 실패 시에 게임 로그인 실패를 피하기 위해, 개인 정보를 확인하고 친구 정보 설정이 핵심 경로에 있는지 확인하십시오.
2) 게임 측에서 개인 정보 및 친구 정보 획득 시에 캐시 처리해 매번 로그인 시에 새로운 개인 정보 및 친구 정보를 불러오는 절차를 피하고 위챗 방문 트래픽이 지나치게 많아지지 않도록 할 것을 권장합니다.
3) 모바일QQ에서 검색한 같은 게임을 플레이하는 친구의 결과에는 자신의 정보가 포함되지 않지만, 위챗에서 검색한 같은 게임을 플레이하는 친구의 결과에는 자신의 정보가 포함됩니다.
7) 용어 해석
같은 게임 친구: 현재 게임을 플레이하는 친구 플레이어
비 핵심 경로: 게임 로그인 과정에 영향을 미치지 않는 것을 가리키는 말, msdk는 모바일QQ/위챗의 로그인 과정을 핵심 경로로 정의하며, 로그인 과정에서 단절되면 해당 게임의 성상적인 진행에 심각한 영향을 미칩니다.
QQ 친구 추가
개요
플레이어는 게임 중에 게임 플레이어를 직접 QQ 친구(여러 차례 클릭해도 여러 건의 QQ 신청을 발송할 수 없음)로 추가(모바일QQ 풀업)할 수 있습니다.
콜백 등록
추가 성공 또는 실패 시에 OnShareNotify(ShareRet ret)을 통해 게임에 콜백할 수 있습니다. ret.flag는 다양한 공유 결과를 나타냅니다. 구체적인 내용은 eFlag를 참조하십시오.
호출 인터페이스
1) 기능 설명
플레이어는 게임 중에 다른 게임 플레이어를 직접 QQ 친구로 추가(모바일QQ 풀업)할 수 있습니다.
2) 인터페이스 선언
void WGAddGameFriendToQQ(unsigned char* cFopenid, unsigned char* cDesc, unsigned char* cMessage)
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
cFopenid | unsigned char* | 친구의 openid를 추가해야 합니다. |
cDesc | unsigned char* | 친구의 비주 정보를 추가해야 합니다. |
cMessage | unsigned char* | 친구 추가 시 발송하는 인증 정보 |
4) 반환값
없음
5) 예시 코드
WGPlatform::GetInstance()->WGAddGameFriendToQQ((unsigned char*)"C1BF66286792F24E166C9A5D27CFB519",
(unsigned char*)"친구 추가 테스트",
(unsigned char*)"안녕하세요~");
6) 특수 설명
없음
7) 명칭 해석
없음
자주 묻는 질문
1. 개인 정보와 같은 게임 플레이 친구 정보를 어떻게 구분합니까?
주의: 2.18.0i 이상 버전에서는, 개인 정보 검색 및 같이 플레이하는 친구 검색 콜백은 RelationRet의 Type를 통해 구분할 수 있습니다.
1) OnRelationNotify에서 RelationRet으로 콜백하는 persons 목록 요소가 1개를 초과하는 경우, 분명히 같은 게임 플레이 친구의 정보입니다.
2) 개인 정보 및 같은 게임 플레이 친구 정보는 같은 상황 하에서 어떻게 구분할 수 있습니까?
1.OnRelationNotify 콜백의 openId 획득
우리는 RelationRet 안의 persons 목록의 첫 요소 PersonInfo의 openId을 근거로 확인할 수 있습니다.
-
현재 로그인 사용자의 openId 획득
우리는 로컬 토큰을 획득하는 방식으로 openId를 획득할 수 있으며, 게임에서도 자신의 방식을 통해 획득할 수 있습니다.
-
openId 비교
같음: 개인 정보
다름: 같은 게임 플레이 친구 정보
2. 위챗 프로필 사진, 친구 등 정보의 변경은 일정 시간 경과 후에 반영됩니다.
위챗 플랫폼은 게임 프로필 사진을 실시간으로 업데이트할 필요가 없다고 생각합니다. 위챗 프로필 사진 업데이트 시, 위챗 플랫폼은 업데이트할 프로필 사진이 저장된 DB에서 Cache를 실행하고 일정 시간이 지난 후에 게임과 동기화시킬 수 있습니다. 위챗 플랫폼의 방침에 따라, 업데이트 동기화 시간은 최단 4시간이며 길게는 48시간까지 소요될 수 있습니다. 위챗 친구의 기타 정보 변동도 마찬가지입니다.
모바일QQ 친구 정보 변경은, 일반적으로 약 1시간 후에 동기화 완료됩니다.