개요
공유 모듈은 게임에 맞춤형 정보의 모바일QQ/위챗 채팅(친구 및 그룹 포함), 스페이스, 모멘트에 공유할 수 있는 기능을 제공하며, 주로 초대, 나눠 갖기, 하트 보내기, 이벤트 공유 등에 활용도비니다. Tencent 관계 사슬의 MSDK 공유 기능을 통해 모바일QQ, 위챗 관계 사슬의 장점을 충분히 발휘할 수 있고 효과적으로 사용자와 접촉할 수 있어, 새로운 가입 및 재방문을 늘리고 게임 활약도를 높이며 게임 플레이 방법을 확장하기에 편리합니다.
공유 방식 및 공유 내용이 다르므로, 공유 환경은 구조화 공유, 음악 공유, 대형 이미지 공유, 백엔드 공유, 링크 공유(위챗 한정), 모바일QQ 공유(Android 한정), 모바일QQ 동영상 공유(Android 한정), 위챗 동영상의 모멘트 및 위챗 미니앱에서의 공유 등으로 분류됩니다.
(./res/share_struct_qq_c.png)
(./res/share_struct_wx_c.png)
이것은 전통적인 왼쪽에 이미지가 있고 오른쪽에 문자가 있는 공유 형식으로, 각 부분의 내용은 아래와 같습니다.
제목: 공유 파라미터 title을 지정하며, 게임은 공유 기능 또는 유형에 따라 자체 정의합니다.
개요: 공유 파라미터 desc를 지정하며, 주로 공유 목적의 간략한 설명에 사용됩니다.
썸네일: 공유 파라미터 imgUrl 또는 imgData를 지정하며, 일반적으로 게임의 icon입니다.
리틀테일(小尾巴): 일반적으로 게임 icon 및 게임 이름으로 구성되며, 클릭하면 게임을 풀하게 되며, 게임 운영 매니저가 모바일QQ, 위챗 게임 센터에 연락할 수 있습니다.
MSDK 공유 환경 및 공유 목표
구조화 공유
구조화 공유는 모바일QQ/위챗을 풀업해야 채팅 및 QQ 스페이스에서 공유 가능하며 위챗 모멘트에서는 공유할 수 없습니다.
(./res/share_struct_qq.png)
(./res/share_struct_wx.png)
대형 이미지 공유
구조화 공유는 모바일QQ/위챗을 풀업해야 채팅 및 QQ 스페이스에서 공유 가능하며 위챗 모멘트에서는 공유할 수 없습니다.
(./res/share_photo_qq.png)
(./res/share_photo_wx.png)
음악 공유
구조화 공유는 모바일QQ/위챗을 풀업해야 채팅 및 QQ 스페이스에서 공유 가능하며 위챗 모멘트에서는 공유할 수 없습니다. 음악 정보를 클릭하면 직접 음악을 재생하거나 음악 웹페이지로 이동해 재생할 수 있습니다.
백엔드 공유
백엔드 공유는 모바일QQ/위챗을 풀하지 않아도 되며, 직접 게임 내 호출 인터페이스에서 같이 플레이하는 친구들과 공유할 수 있습니다.
a) 위챗의 백엔드 공유 정보는 친구와의 채팅 시에 표시됩니다.
b) 모바일QQ의 백엔드 공유 정보는 모바일QQ의 공공 계정dls “QQ 모바일 게임”에서 타겟 플레이어에게 표시됩니다.
(./res/share_backend_qq.png)
(./res/share_backend_wx.png)
주의: 수신자 측에서 “QQ 모바일 게임” 공공 계정에 주의를 기울여야 수신할 수 있으며, 동일한 사용자가 같은 날에 동일한 게임에서 수신하는 것은 약 20건의 정보입니다.
위챗 링크 공유
위챗 링크 공유는 위챗을 풀업해서 공유해야 하며, 정보를 클릭하면 웹페이지가 열립니다.
(./res/share_url_wx.png)
모바일 QQ 사진(富图) 공유
모바일QQ 사진 공유는 모바일QQ를 풀업하여 다양한 사진을 QQ 스페이스에서 공유할 수 있습니다. 복수의 사진(9장 이하의 사진은 슈어슈어(说说)에 게시, 9장 초과할 경우에는 앨범에 업로드)을 업로드할 수 있으며, gif 이미지도 지원됩니다.
모바일 QQ 동영상 공유
모바일QQ 동영상 공유는 모바일QQ을 풀업하여 로컬 동영상을 QQ 스페이스에서 공유할 수 있습니다.
(./res/share_video.png)
액세스 내비게이션
1 사전 요구 사항
a) 초기화 모듈 설명에 따라 초기화를 완료했습니다.
b) 귀하의 게임 공유 권한이 개통되었음을 확인합니다. 게임 등록 후 귀하의 게임 카테고리에 따라 상응하는 권한을 개통하고, 귀하께서 로그인 인터페이스를 호출해 "-303, no permission"을 회신하시려면, MSDK 통합 및 테스트 지원 담당자에게 연락해 주십시오.
c) 사용자 모바일QQ/위챗 인증 등록 확인
2 Demo 예시를 참고하십시오.
모바일QQ 공유의 예시는 MSDKDemo/LoginSucceedVC.mm 내 공유 부분을 참조하십시오.
위챗 공유의 예시는 MSDKDemo/LoginSucceedVC.mm 내 공유 부분을 참조하십시오.
3 이 모듈의 다른 인터페이스 호출
앞의 Step1-Step2 단계를 완료하면 이 모듈에 완벽하게 액세스한 것이 되며, 이 모듈의 다른 인터페이스를 호출할 수 있으며 추가적인 설정은 필요없습니다. 이 모듈의 각 부분에 대한 설명은 다음과 같습니다.
1)구조화 공유: 구조화 공유는 모바일QQ/위챗을 풀업해야 하며, 공유 디스플레이는 왼쪽에 이미지 오른쪽에 문자가 오는 형식입니다.
2)대형 이미지 공유: 대형 이미지 공유는 모바일QQ/위챗을 풀업해야 하며, 공유 디스플레이는 1장의 이미지입니다.
3)음악 공유: 음악 공유는 모바일QQ/위챗을 풀업해야 하며, 공유 디스플레이는 왼쪽에 이미지 오른쪽에 문자가 오는 형식이고, 이미지를 클릭하면 음악을 직접 플레이하거나 링크로 이동해 음악을 재생합니다.
4)백엔드 공유: 백엔드 공유는 모바일QQ/위챗을 풀하지 않아도 되며, 직접 게임 내 호출 인터페이스에서 같이 플레이하는 친구들과 공유할 수 있습니다.
5)위챗 링크 공유: 위챗 링크 공유는 위챗을 풀업해서 공유해야 하며, 정보를 클릭하면 웹페이지가 열립니다.
6)모바일QQ 사진 공유: 모바일QQ 사진 공유는 모바일QQ를 풀업하여 다양한 사진을 QQ 스페이스에서 공유할 수 있습니다.
7)** 모바일QQ 동영상 공유: 모바일QQ 동영상 공유는 모바일QQ을 풀업하여 로컬 동영상을 QQ 스페이스에서 공유할 수 있습니다.
8)모바일QQ 게임 센터 상세 정보 페이지: 모바일QQ 게임 상세 정보 페이지는 모바일QQ에서 프리미엄 게임에 대하여 게임 센터에서 상세 정보 페이지를 디스플레이할 수 있게 해 주는 기능으로, 해당 페이지를 이용해 다운로드, 디스플레이, 게임으로 이동 등의 기능을 제공할 수 있습니다.
종합 설명
구조화 공유는 모바일QQ/위챗을 풀업해야 채팅 및 QQ 스페이스에서 공유 가능하며 위챗 모멘트에서는 공유할 수 없습니다.
처리 콜백
1) 기능 설명
귀하께서 MSDK의 공유 콜백을 수신하기 위해서는 OnShareNotify
처리를 해야 합니다.
2) 인터페이스 선언
virtual void OnShareNotify(ShareRet& shareRet) = 0;
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
shareRet | ShareRet 카테고리 | 공유 결과 정보 유형 |
4) 반환값
없음
5) 예시 코드
void MyObserver::OnShareNotify(ShareRet& shareRet)
{
switch (shareRet.flag)
{
case eFlag.eFlag_Succ:
// TODO GAME 공유 성공
break;
case eFlag.eFlag_QQ_UserCancel:
case eFlag.eFlag_WX_UserCancel:
case eFlag.eFlag_WX_NotInstall:
default:
// TODO GAME 공유 실패
break;
}
};
6) 특수 설명
없음
7) 용어 해석
없음
위챗 구조화 공유
1) 기능 설명
WGSendToWeixin
인터페이스를 호출해서 구조화 정보를 위챗 채팅에서 공유할 수 있습니다.
2) 인터페이스 선언
void WGSendToWeixin(
unsigned char* title,
unsigned char* desc,
unsigned char* mediaTagName,
unsigned char* thumbImgData,
const int& thumbImgDataLen,
unsigned char* messageExt
unsigned char *userOpenId //이 매개 변수는 버전 3.3.0부터 추가되었습니다.);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
title | unsigned char* | 제목, 512B 초과 불가 |
desc | unsigned char* | 요약 정보, 1KB 초과 불가 |
mediaTagName | unsigned char* | 이 값은 위챗 총 통계로 전송되며 다음과 같은 값을 선택 입력할 수 있습니다. " MSG_INVITE” : "MSG_SHARE_MOMENT_HIGH_SCORE” 초대 : 이번 주 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_BEST_SCORE" : 이력 내 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_CROWN" : 금메달을 모멘트에서 공유 "MSG_SHARE_FRIEND_HIGH_SCORE" : 이번 주 베스트를 친구에게 전송 "MSG_SHARE_FRIEND_BEST_SCORE" : 이력 내 베스트를 친구와 공유 "MSG_SHARE_FRIEND_CROWN" : 금메달을 친구와 공유 "MSG_friend_exceed" : 초과분 나눠 갖기 "MSG_heart_send" : 하트 보내기 |
thumbImgData | unsigned char* | 썸네일 파일 데이터 |
thumbImgDataLen | const int& | 썸네일 데이터 길이, 크기는 32K 초과 불가 |
messageExt | unsigned char* | 게임 자체 정의 투명 전송 필드는, 아래 특수 설명을 참조하십시오. |
userOpenId | unsigned char* | 특정 친구에게 공유하도록 지정하면 문자열을 전달할 수 있습니다. 3.3.0 버전은이 매개 변수를 추가하기 시작합니다. |
4) 반환값
없으며, 공유 결과는 OnShareNotify
콜백을 통해 게임에 반환합니다.
5) 예시 코드
UIImage *image = [UIImage imageNamed:@"music.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
WGPlatform::GetInstance()->WGSendToWeixin((unsigned char*)"공유 제목",
(unsigned char*)"공유 내용",
(unsigned char*)"MSG_INVITE",
(unsigned char*)[data bytes],
(int)[data length],
(unsigned char*)"msdkwuwuwu"
(unsigned char *)"");
6) 특수 설명
파라미터 messageExt는 공유 후에 플레이어가 클릭했을 때 게임으로 돌아갈 수 있습니다. 구체적인 과정: 플레이어 A가 위챗 정보(messageExt 파라미터 보유)를 플레이어B와 공유하고, 플레이어B가 클릭해 수신하는 이 정보로 게임을 풀하면, 플레이어B의 게임 클라이언트는 콜백 이벤트OnWakeupNotify(WakeupRet wakeupRet)를 수신하고, OnWakeupNotify의 wakeupRet.messageExt는 플레이어A가 공유할 때 전달한 messageExt 파라미터가 됩니다. OnWakeupNotify
의 등록은 다른 계정 처리를 참조하십시오.``
7) 용어 해석
없음
모바일QQ 구조화 공유
1) 기능 설명
WGSendToQQ 인터페이스를 호출해 구조화 정보를 QQ 채팅 또는 스페이스에서 공유할 수 있습니다.
2) 인터페이스 선언
void WGSendToQQ(
const eQQScene& scene,
unsigned char* title,
unsigned char* desc,
unsigned char* url,
unsigned char* imgData,
const int& imgDataLen
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
scene | eQQScene 열거 | 모바일QQ 또는 Qzone에 로고 발송 |
title | unsigned char* | 제목 길이는 128B를 초과할 수 없습니다 |
desc | unsigned char* | 제목 길이는 512B를 초과할 수 없습니다 |
url | unsigned char* | 콘텐츠 이동 Url |
imgData | unsigned char* | 썸네일 파일 데이터 |
imgDataLen | const int& | 썸네일 데이터 길이 |
4) 반환값
없으며, 공유 결과는 OnShareNotify
콜백을 통해 게임에 반환합니다.
5) 예시 코드
UIImage *image = [UIImage imageNamed:@"music.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
WGPlatform::GetInstance()->WGSendToQQ(QQScene_QZone,
(unsigned char*)[gameid UTF8String] ,
(unsigned char*)[question UTF8String],
(unsigned char*)"http://gamecenter.qq.com/cdn/ios/detail_ios.html?plat=qq&appid=100703379&sid=AefJ54uwWnH7rW6xJwMM1aFI&uin=403261045&pf=invite&platformdata=test38&gamedata=test47",
(unsigned char*)[data bytes],
(int)[data length]);
6) 특수 설명
Url은 모바일QQ 게임 센터 상세 정보 페이지 링크를 입력할 경우, 정보를 클릭하면 게임을 풀업하여 자체 정의 파라미터로 돌아갈 수 있습니다. 상세 정보는 모바일QQ 게임 센터 상세 정보 페이지QGameCenter를 참조하십시오.#
7) 용어 해석
없음
고급 용법
1) 기능 설명
게임은 구조화 정보 공유 시에 일련의 자체 정의 정보(문자열)를 추가할 수 있으며, 다른 플레이어가 이 정보를 클릭하면 게임을 자동으로 풀업하여 추가한 자체 정의 정보를 OnWakeupNotify를 통해 게임에 투명 전송할 수 있습니다.
이 기능은 오프라인 친구 배틀에 사용할 수 있으며, 전투 룸에 신속히 진입해 게임을 플레이할 수 있습니다. 예:
1) 플레이어A가 1개의 배틀 룸11을 개설하고 이때 플레이어B는 오프라인임
2) A는 1개의 QQ/Wechat 구조화 정보(룸 번호 11 및 A의 openid emd와 같은 자체 정의 정보 추가)를 B와 공유합니다.
3) B가 QQ/WeChat 내에서 이 정보를 클릭하면, 이때 게임을 풀업하여 추가한 정보(룸 번호 11 및 A의 openid 등)를 게임 클라이언트와 공유할 수 있습니다.
4) 게임은 추가한 룸 번호 11 및 A의 openid 등의 정보에 근거해, B로 하여금 A의 배틀 룸 11에 신속히 진입하게 하고, 두 플레이어는 배틀을 시작할 수 있습니다.
2) 파라미터 설명
WeChat은 인터페이스 WGSendToWeixin 내의 messageExt 파라미터를 통해 자체 정의 정보를 투명 전송할 수 있습니다.
QQ는 인터페이스 WGSendToQQ 내 targetUrl을 통해 게임 센터 상세 정보 페이지의 Url로 설정하고 gamedata 파라미터를 추가해 자체 정의 정보를 투명 전송할 수 있습니다. 예:
게임 센터 상세 정보 페이지 Url:
http://gamecenter.qq.com/cdn/ios/detail_ios.html?plat=qq&appid=100703379&sid=AefJ54uwWnH7rW6xJwMM1aFI&uin=403261045&pf=invite&platformdata=test38
Url 내에 자체 정의 정보 ”CustomData”를 추가합니다.
http://gamecenter.qq.com/cdn/ios/detail_ios.html?plat=qq&appid=100703379&sid=AefJ54uwWnH7rW6xJwMM1aFI&uin=403261045&pf=invite&platformdata=test38&gamedata=CustomData
3) 예시 코드
정보 공유 시작을 클릭해 추가한 자체 정의 정보를 수신 및 처리합니다.
void MyObserver::OnWakeupNotify(WakeupRet& wakeupRet)
{
string gameCustomData = "";
if ((int)ePlatform_QQ == ret.platform)
{
std::vector<KVPair> extInfo = ret.extInfo;
foreach(KVPair pair in extInfo)
{
if ("gamedata".Equals(pair.key))
{
gameCustomData = pair.value;
break;
}
}
}
else if ((int)ePlatform_Weixin == ret.platform)
{
gameCustomData = ret.messageExt;
}
......
}
종합 설명
구조화 공유는 모바일QQ/위챗을 풀업해야 채팅 및 QQ 스페이스에서 공유 가능하며 위챗 모멘트에서는 공유할 수 없습니다.
처리 콜백
구조화 공유 처리 콜백은
위챗 대형 이미지 공유
1) 기능 설명
WGSendToWeixinWithPhoto
인터페이스를 호출해 대형 이미지 정보를 위챗 채팅, 모멘트에서 공유할 수 있습니다.
2) 인터페이스 선언
void WGSendToWeixinWithPhoto(
const eWechatScene &scene,
unsigned char *mediaTagName,
unsigned char *imgData,
const int &imgDataLen,
unsigned char *messageExt,
unsigned char *messageAction
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
scene | eWechatScene 열거 | 위챗 채팅 또는 모멘트에 로고 발송 |
mediaTagName | unsigned char * | 이 값은 위챗 총 통계로 전송되며 다음과 같은 값을 선택 입력할 수 있습니다. " MSG_INVITE” : "MSG_SHARE_MOMENT_HIGH_SCORE” 초대 : 이번 주 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_BEST_SCORE" : 이력 내 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_CROWN" : 금메달을 모멘트에서 공유 "MSG_SHARE_FRIEND_HIGH_SCORE" : 이번 주 베스트를 친구에게 전송 "MSG_SHARE_FRIEND_BEST_SCORE" : 이력 내 베스트를 친구와 공유 "MSG_SHARE_FRIEND_CROWN" : 금메달을 친구와 공유 "MSG_friend_exceed" : 초과분 나눠 갖기 "MSG_heart_send" : 하트 보내기 |
imgData | unsigned char * | 썸네일 파일 데이터 |
imgDataLen | const int & | 썸네일 데이터 길이, 크기는 32K 초과 불가 |
messageExt | unsigned char * | 게임 자체 정의 투명 전송 필드는, 구조화 공유의 특수 설명 |
messageAction | unsigned char * | 위챗 모멘트와 공유할 때의 샤오웨이바(小尾巴) 버튼을 정의합니다. " WECHAT_SNS_JUMP_SHOWRANK" : 순위(게임 센터 상세 정보 페이지) 검색 "WECHAT_SNS_JUMP_URL" : 상세 정보 검색(게임 센터 설정 링크를 연다) "WECHAT_SNS_JUMP_APP" : 플레이하기(게임으로 이동) 게임에서 액션을 자체 정의할 수 있으며, 위챗 측에 연락해 상응하는 행위를 설정할 필요가 있습니다. |
4) 반환값
없으며, 공유 결과는 OnShareNotify
콜백을 통해 게임에 반환합니다.
5) 예시 코드
UIImage *image = [UIImage imageNamed:@"treasure.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
WGPlatform::GetInstance()->WGSendToWeixinWithPhoto(WechatScene_Session,
(unsigned char*)"MSG_INVITE",
(unsigned char*)[data bytes],
(int)[data length],
(unsigned char*)"",
(unsigned char*)"WECHAT_SNS_JUMP_APP");
6) 특수 설명
없음
7) 용어 해석
없음
모바일QQ 대형 이미지 공유
1) 기능 설명
WGSendToQQWithPhoto 인터페이스를 호출해 대형 이미지 정보를 모바일QQ 채팅, 스페이스에서 공유할 수 있습니다.
2) 인터페이스 선언
void WGSendToQQWithPhoto(
const eQQScene& scene,
unsigned char* imgData,
const int& imgDataLen
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
scene | eQQScene 열거 | 모바일QQ 또는 Qzone에 로고 발송 |
imgData | unsigned char* | 썸네일 파일 데이터 |
imgDataLen | const int& | 썸네일 데이터 길이 |
4) 반환값
없으며, 공유 결과는 OnShareNotify
콜백을 통해 게임에 반환합니다.
5) 예시 코드
UIImage *image = [UIImage imageNamed:@"treasure.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
WGPlatform::GetInstance()->WGSendToQQWithPhoto(QQScene_Session,
(unsigned char*)[data bytes],
(int)[data length]);
6) 특수 설명
없음
7) 용어 해석
없음
모바일QQ 대형 이미지 공유 자체 정의 파라미터
1) 기능 설명
대형 이미지의 스페이스 공유 기능에 있어, 모바일QQ 스페이스 측은 입력 콘텐츠에 대해, 사용자가 보게 되는 리틀테일에 대해 맞춤화하도록 요구하고 있습니다. 맞춤화 처리 결과를 구현합니다.
2) 인터페이스 선언
void WGSendToQQWithPhoto(const eQQScene &scene,
ImageParams &imageParams,
const unsigned char *extraScene,
const unsigned char *messageExt);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
scene | eQQScene 열거 | 공유 화경은, 현재 QQ스페이스QQScene_QZone만 지원됩니다. |
imageParams | ImageParams | 이 struct는 android, ios 상의 대응하는 필드가 다릅니다. android는 이미지 경로:android_imagePath를 입력해야 합니다. ios는 스스로 이미지 데이터 ios_imageData 및 이미지 데이터 길이 ios_imageDataLen를 읽어들일 필요가 있습니다. |
extraScene | unsigned char* | 구분 공유하는 환경은, 리틀 테일 디스플레이 차별화와 feeds 클릭 행위에 사용됩니다. |
messageExt | unsigned char* | 게임 자체 정의 필드는, 정보 공유를 클릭해 게임으로 돌아갈 때 게임으로 투명 전송할 수 있으며, 불필요한 경우에는 빈 문자열을 넣을 수 있습니다. |
4) 반환값
없으며, 공유 결과는 OnShareNotify
콜백을 통해 게임에 반환합니다.
5) 예시 코드
UIImage *image = [UIImage imageNamed:@"treasure.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
ImageParams imageParam;
imageParam.ios_imageData = (unsigned char *)[data bytes];
imageParam.ios_imageDataLen = (int)[data length];
WGPlatform::GetInstance()->WGSendToQQWithPhoto(QQScene_QZone, imageParam,(unsigned char *)"MESSAGE_ACTION_SNS_CANVAS#Honor=1" , (unsigned char *) "스페이스 추가 파라미터 보유");
6) 특수 설명
없음
7) 용어 해석
없음
종합 설명
백엔드 공유는 모바일QQ/위챗을 풀하지 않아도 되며, 직접 게임 내 호출 인터페이스에서 같이 플레이하는 친구들과 공유할 수 있습니다.
처리 콜백
구조화 공유 처리 콜백은
위챗 백엔드 공유
1) 기능 설명
WGSendToWXGameFriend 인터페이스를 호출해서 정보를 위챗 채팅에서 공유할 수 있습니다.
2) 인터페이스 선언
bool WGSendToWXGameFriend(
unsigned char* fOpenId,
unsigned char* title,
unsigned char* description,
unsigned char* mediaId,
unsigned char* messageExt,
unsigned char* mediaTagName,
unsigned char* msdkExtInfo
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
fOpenId | unsigned char* | 타겟 플레이어의 openid 공유 |
title | unsigned char* | 타이틀 |
description | unsigned char* | 정보 개요 |
mediaId | unsigned char* | 정보 사진의 id, 서버 클라이언트 인터페이스/share/upload_wx을 통해 획득해 공백을 입력하면 기본값은 게임 icon이 됩니다. |
messageExt | unsigned char* | 게임 자체 정의 투명 전송 필드는, 구조화 공유의 특수 설명 |
mediaTagName | unsigned char* | 이 값은 위챗 총 통계로 전송되며 다음과 같은 값을 선택 입력할 수 있습니다. " MSG_INVITE” : "MSG_SHARE_MOMENT_HIGH_SCORE” 초대 : 이번 주 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_BEST_SCORE" : 이력 내 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_CROWN" : 금메달을 모멘트에서 공유 "MSG_SHARE_FRIEND_HIGH_SCORE" : 이번 주 베스트를 친구에게 전송 "MSG_SHARE_FRIEND_BEST_SCORE" : 이력 내 베스트를 친구와 공유 "MSG_SHARE_FRIEND_CROWN" : 금메달을 친구와 공유 "MSG_friend_exceed" : 초과분 나눠 갖기 "MSG_heart_send" : 하트 보내기 |
msdkExtInfo | unsigned char* | 게임 자체 정의 투명 전송 필드는, OnShareNotify 내 shareRet.extInfo 공유 콜백을 통해 게임에 반환합니다. |
4) 반환값
false: 파라미터가 옳지 않아 공유 요청을 보낼 수 없음, true: 공유 요청 발송 성공.
없으며, 공유 결과는 OnShareNotify
콜백을 통해 게임에 반환합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGSendToWXGameFriend((unsigned char*)"oGRTijrRMR2cByTjfODDJoo099Q4",
(unsigned char*)"msdk 테스트 QQ 공유가 왔습니다.",
(unsigned char*)"저는 검협정연을 플레이하고 있습니다.",
(unsigned char*)"",
(unsigned char*)"balabalabalabala",
(unsigned char*)"MSG_INVITE",
(unsigned char*)"msdkExtInfo");
6) 특수 설명
없음
7) 용어 해석
없음
모바일QQ 백엔드 공유
1) 기능 설명
WGSendToQQGameFriend
인터페이스를 호출해 정보를 모바일QQ 공공 계정인 “QQ모바일 게임”을 통해 대상 사용자와 공유할 수 있습니다.
**비주: 공유하는 콘텐츠는 모바일QQ 상에 있어야 볼 수 있으며, PC QQ 상에서는 볼 수 없습니다. 수신자 측에서 “QQ 모바일 게임” 공공 계정에 주의를 기울여야 수신할 수 있으며, 동일한 사용자가 매일 최대 5건을 받을 수 있고, 동일한 사용자에게서 수신하는 것은 매일 최대 3건입니다.
모바일QQ 백엔드 공유는 새로운 액세스 절차를 제공하며, 새 게임 액세스 시에 다음 절차에 따라 액세스(이미 온라인된 게임에 영향 없음)하며, 다음 절차는 모두 Tencent의 대응하는 인터페이스 인원에게 연락해 도킹해야 합니다.
(1) 백엔드 공유 권한 개통 신청
(2) 이미지 및 문안을 v_diqicai(蔡迪琪: 차이디치)에 제공
(3) appid 및 gametag를 AMS 절차에 새롭게 추가하고, v_diqicai(蔡迪琪: 차이디치)에 연락해 등록
(4) v_diqicai(蔡迪琪: 차이디치)에 연락해 1개의 테스트용 게임 센터 상세 정보 페이지(이후에 정식 상세 정보 페이지로 수정 가능)
(5) 인터페이스 액세스 완료 후 공유 성공 여부 검증**
2) 인터페이스 선언
bool WGSendToQQGameFriend(
int act,
unsigned char* fopenid,
unsigned char *title,
unsigned char *summary,
unsigned char *targetUrl,
unsigned char *imgUrl,
unsigned char* previewText,
unsigned char* gameTag,
unsigned char* msdkExtInfo
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
act | int | 정보 공유 액션 클릭, 1 게임을 풀업함, 기본은 게임 풀업 |
fOpenId | unsigned char* | 타겟 플레이어의 openid 공유 |
title | unsigned char* | 제목, 20자 초과 불가 |
desc | unsigned char* | 요약 정보, 60자 초과 불가 |
targetUrl | unsigned char* | 게임 센터 상세 정보 페이지 주소와 설정은, http://wiki.msdk.qq.com/IOS/share.html#IOS_QGameCenter를 참조해 주십시오. |
imageUrl | unsigned char* | 썸네일 Url 공유, 네트워크 이미지 Url만 될 수 있음 |
previewText | unsigned char* | 문자 미리보기 선택 가능, 45B 초과 불가 |
gameTag | unsigned char* | 표식 정보 카테고리 선택 가능. " MSG_INVITE": 초청 "MSG_FRIEND_EXCEED": 초과분 나눠 갖기 "MSG_HEART_SEND": 하트 보내기 "MSG_SHARE_FRIEND_PVP" : PVP 배틀 |
msdkExtInfo | unsigned char* | 게임 자체 정의 투명 전송 필드는, OnShareNotify 내 shareRet.extInfo 공유 콜백을 통해 게임에 반환합니다. |
4) 반환값
false: 파라미터가 옳지 않아 공유 요청을 보낼 수 없음, true: 공유 요청 발송 성공.
없으며, 공유 결과는 OnShareNotify
콜백을 통해 게임에 반환합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGSendToQQGameFriend(0,
(unsigned char *)"E7B0E64C39A09127A698326F4941A9B6",
(unsigned char *)"title",
(unsigned char *)"desc",
(unsigned char *)"http://bbs.oa.com",
(unsigned char *)"http://bbs.oa.com",
(unsigned char *)"PreviewText",
(unsigned char *)"MSG_INVITE",
(unsigned char *)"extMsdkInfo");
6) 특수 설명
수신자 측에서 “QQ 모바일 게임” 공공 계정에 주의를 기울여야 수신할 수 있으며, 동일한 사용자가 같은 날에 동일한 게임에서 수신하는 것은 약 20건의 정보입니다.
7) 용어 해석
없음
백엔드 그룹 공유
종합 설명
게임 길드/연맹 내에서 사용자는 구조화 정보를 위챗 길드 그룹과 직접 공유할 수 있습니다. 게임에서 해당 인터페이스에 기초해 일련의 라화(拉活) 앱의 솔루션을 만듭니다. 호출 인터페이스는 WGSendToWXGroup이며, 결과는 일반적인 OnShareNotify 공유를 통해 게임에 콜백합니다.
콜백 등록
구조화 공유 콜백
백엔드를 위챗 그룹에서 공유
1) 기능 설명
이 인터페이스는 위챗 풀업을 필요로 하지 않으며, 플레이어가 이미 가입한 길드 위챗 그룹에서 직접 공유할 수 있습니다.
2) 인터페이스 선언
void WGSendToWXGroup(
const int& msgType,
const int& subType,
unsigned char* unionID,
unsigned char* title,
unsigned char* desc,
unsigned char* mediaTagName,
unsigned char* imgUrl,
unsigned char* messageExt,
unsigned char* msdkExtInfo
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
msgType | int | 정보 유형, 현재 전송1 |
subType | int | 공유 유형, 초대 1 입력, 나눠 갖기 2 입력, 보너스 3 입력, 요청 4 입력 |
unionID | unsigned char* | 길드 ID |
title | unsigned char* | 공유하는 타이틀 |
desc | unsigned char* | 공유하는 개요 |
mediaTagName | unsigned char* | 이 값은 위챗 총 통계로 전송되며 다음과 같은 값을 선택 입력할 수 있습니다. " MSG_INVITE” : "MSG_SHARE_MOMENT_HIGH_SCORE” 초대 : 이번 주 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_BEST_SCORE" : 이력 내 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_CROWN" : 금메달을 모멘트에서 공유 "MSG_SHARE_FRIEND_HIGH_SCORE" : 이번 주 베스트를 친구에게 전송 "MSG_SHARE_FRIEND_BEST_SCORE" : 이력 내 베스트를 친구와 공유 "MSG_SHARE_FRIEND_CROWN" : 금메달을 친구와 공유 "MSG_friend_exceed" : 초과분 나눠 갖기 "MSG_heart_send" : 하트 보내기 |
imgUrl | unsigned char* | 썸네일 URL 공유 |
messageExt | unsigned char* | 게임 자체 정의 투명 전송 필드는, 구조화 공유의 특수 설명 |
msdkExtInfo | unsigned char* | 게임 자체 정의 투명 전송 필드는, 공유 결과 shareRet.extInfo를 통해 게임에 회신합니다. |
4) 반환값
없으며, 공유 결과는 OnShareNotify 콜백을 통해 게임에 반환합니다.
5) 예시 코드
int msgType = 1;
int subType = 1;
std::string unionID = "1";
std::string title = "길드 위챗 그룹과 백엔드 공유-title";
std::string desc = "위챗 친구에 백엔드 공유-desc";
std::string mediaTagName = "MSG_INVITE";
std::string imgUrl = "http://blog.bihe0832.com/public/img/head.jpg";
std::string messageExt = "message Ext";
std::string msdkExtInfo = "msdkExtInfo";
WGPlatform::GetInstance()->WGSendToWXGroup(
msgType,
subType,
(unsigned char *)unionID.c_str(),
(unsigned char *)title.c_str(),
(unsigned char *)desc.c_str(),
(unsigned char *)mediaTagName.c_str(),
(unsigned char *)imgUrl.c_str(),
(unsigned char *)messageExt.c_str(),
(unsigned char *)msdkExtInfo.c_str());
6) 특수 설명
- 인터페이스는 길드 id를 참조해야 하므로 이 길드는 위챗 그룹에 바인딩되어야 정보를 공유할 수 있습니다.
이 플레이어는 먼저 길드 그룹에 가입해야 정보를 공유할 수 있습니다. 상세 정보는 그룹 모듈
7) 용어 해석
없음
종합 설명
구조화 공유는 모바일QQ/위챗을 풀업해야 채팅 및 QQ 스페이스에서 공유 가능하며 위챗 모멘트에서는 공유할 수 없습니다. 음악 정보를 클릭하면 직접 음악을 재생하거나 음악 웹페이지로 이동해 재생할 수 있습니다.
처리 콜백
구조화 공유 처리 콜백은
위챗 음악 공유
1) 기능 설명
WGSendToWeixinWithMusic
인터페이스를 호출해 음악 정보를 위챗 채팅과 모멘트에서 공유할 수 있습니다.
2) 인터페이스 선언
void WGSendToWeixinWithMusic(
const eWechatScene& scene,
unsigned char* title,
unsigned char* desc,
unsigned char* musicUrl,
unsigned char* musicDataUrl,
unsigned char *mediaTagName,
unsigned char *imgData,
const int &imgDataLen,
unsigned char *messageExt,
unsigned char *messageAction
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
scene | eWechatScene 열거 | 위챗 채팅 또는 모멘트에 로고 발송 |
title | unsigned char* | 제목, 512B 초과 불가 |
desc | unsigned char* | 요약 정보, 1KB 초과 불가 |
musicUrl | unsigned char* | 정보 클릭 후에 이동하는 Url, 길이는 10K 초과 불가 |
musicDataUrl | unsigned char* | 음악 데이터 Url(예: http:// ***.mp3), 길이는 10K 초과 불가 |
mediaTagName | unsigned char* | 이 값은 위챗 총 통계로 전송되며 다음과 같은 값을 선택 입력할 수 있습니다. " MSG_INVITE” : "MSG_SHARE_MOMENT_HIGH_SCORE” 초대 : 이번 주 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_BEST_SCORE" : 이력 내 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_CROWN" : 금메달을 모멘트에서 공유 "MSG_SHARE_FRIEND_HIGH_SCORE" : 이번 주 베스트를 친구에게 전송 "MSG_SHARE_FRIEND_BEST_SCORE" : 이력 내 베스트를 친구와 공유 "MSG_SHARE_FRIEND_CROWN" : 금메달을 친구와 공유 "MSG_friend_exceed" : 초과분 나눠 갖기 "MSG_heart_send" : 하트 보내기 |
imgData | unsigned char* | 썸네일 파일 데이터 |
imgDataLen | int | 썸네일 데이터 길이, 크기는 32K 초과 불가 |
messageExt | unsigned char* | 게임 자체 정의 투명 전송 필드는, 구조화 공유의 특수 설명 |
messageAction | unsigned char* | 위챗 모멘트와 공유할 때의 샤오웨이바(小尾巴) 버튼을 정의합니다. " WECHAT_SNS_JUMP_SHOWRANK" : 순위(게임 센터 상세 정보 페이지) 검색 "WECHAT_SNS_JUMP_URL" : 상세 정보 검색(게임 센터 설정 링크를 연다) "WECHAT_SNS_JUMP_APP" : 플레이하기(게임으로 이동) |
4) 반환값
없으며, 공유 결과는 OnShareNotify
콜백을 통해 게임에 반환합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGSendToWeixinWithMusic(WechatScene_Session,
(unsigned char*)"테스트 음악",
(unsigned char*)"테스트 음악 공유",
(unsigned char*)"http://y.qq.com/#type=song&mid=000cz9pr0xlAId",
(unsigned char*)"http://tsmusic24.tc.qq.com/M500000cz9pr0xlAId.mp3",
NULL,
(unsigned char*)[data bytes],
(int)[data length],
NULL,
NULL);
6) 특수 설명
없음
7) 용어 해석
없음
모바일QQ 음악 공유
1) 기능 설명
WGSendToQQWithMusic
인터페이스를 호출해 음악 정보를 모바일QQ 채팅과 스페이스에서 공유할 수 있습니다.
2) 인터페이스 선언
void WGSendToQQWithMusic(
const eQQScene& scene,
unsigned char* title,
unsigned char* desc,
unsigned char* musicUrl,
unsigned char* musicDataUrl,
unsigned char* imgUrl
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
scene | eQQScene 열거 | 모바일QQ 또는 Qzone에 로고 발송 |
title | unsigned char* | 제목 길이는 128B를 초과할 수 없습니다 |
desc | unsigned char* | 제목 길이는 512B를 초과할 수 없습니다 |
musicUrl | unsigned char* | 정보 클릭 후에 이동하는 Url |
musicDataUrl | unsigned char* | 음악 데이터 Url(ㅇ: http:// ***.mp3) |
imgUrl | unsigned char* | 공유 정보 썸네일 Url, 로컬 경로 또는 네트워크 Url |
4) 반환값
없으며, 공유 결과는 OnShareNotify
콜백을 통해 게임에 반환합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGSendToQQWithMusic(QQScene_QZone,
(unsigned char*)"테스트 음악 ",
(unsigned char*)"테스트 음악 공유",
(unsigned char*)"http://y.qq.com/#type=song&mid=000cz9pr0xlAId",
(unsigned char*)"http://tsmusic24.tc.qq.com/M500000cz9pr0xlAId.mp3",
(unsigned char*)"http://www.monsterworking.com/wp-content/uploads/music.jpg");
6) 특수 설명
없음
7) 용어 해석
없음
위챗 그룹 정보 발송
1) 기능 설명
게임 내에서 위챗 그룹으로 구조화 정보를 보냅니다.
2) 인터페이스 선언
void WGSendToWXGroup(
const int& msgType,
const int& subType,
unsigned char* unionID,
unsigned char* title,
unsigned char* desc,
unsigned char* messageExt,
unsigned char* mediaTagName,
unsigned char* imgUrl,
unsigned char* msdkExtInfo
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
msgType | int | 정보 유형: 1:open 2:link(구현 안 됨) 3:voice(구현 안됨) 4:text(구현 안됨) |
subType | int | 하위 유형: 1:초청(1 입력) 2: 나눠 갖기 3: 선물하기 4: 요청 |
unionID | unsigned char* | 길드 id |
title | unsigned char* | 타이틀 |
desc | unsigned char* | 설명 |
messageExt | unsigned char* | 게임 공유는 문자열 입력이며, 이 정보를 통해 게임을 풀업하면 OnWakeUpNotify 내 ret.messageExt에서 게임에 회신할 수 있습니다. |
mediaTagName | unsigned char* | 이 값은 위챗 총 통계로 전송되며 다음과 같은 값을 선택 입력할 수 있습니다. " MSG_INVITE” : "MSG_SHARE_MOMENT_HIGH_SCORE” 초대 : 이번 주 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_BEST_SCORE" : 이력 내 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_CROWN" : 금메달을 모멘트에서 공유 "MSG_SHARE_FRIEND_HIGH_SCORE" : 이번 주 베스트를 친구에게 전송 "MSG_SHARE_FRIEND_BEST_SCORE" : 이력 내 베스트를 친구와 공유 "MSG_SHARE_FRIEND_CROWN" : 금메달을 친구와 공유 "MSG_friend_exceed" : 초과분 나눠 갖기 "MSG_heart_send" : 하트 보내기 |
imgUrl | unsigned char* | 이미지 CDN url |
msdkExtInfo | unsigned char* | 게임 자체 정의 투명 전송 필드는, OnShareNotify 내 shareRet.extInfo 공유 콜백을 통해 게임에 반환합니다. |
4) 반환값
없으며, 호출 결과는 OnShareNotify
을/를 통해 게임에 콜백합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGSendToWXGroup(1,
1,
(unsigned char*)[unionId UTF8String],
(unsigned char*)"WXGroup Title",
(unsigned char*)"WXGroup Desc",
(unsigned char*)"messageExt",
(unsigned char*)"MSG_INVITE",
(unsigned char*)"http://mmocgame.qpic.cn/wechatgame/mEMdfrX5RU3uZS2DPHjgjMZEVAOwVZ9ovTytliapMYJD5mQfffyXsUBFSkINlxUVk/0",
(unsigned char*)"msdkExtInfo");
6) 특수 설명
파라미터 내 unionID, title, desc, mediaTagName은 공백으로 남겨둘 수 없습니다.
7) 용어 해석
없음
종합 설명
위챗 링크 공유는 위챗을 풀업해서 공유해야 하며, 정보를 클릭하면 웹페이지가 열립니다.
처리 콜백
구조화 공유 처리 콜백은
위챗 링크 공유
1) 기능 설명
WGSendToWeixinWithUrl
인터페이스를 호출해 음악 정보를 위챗 채팅과 모멘트에서 공유할 수 있습니다.
2) 인터페이스 선언
void WGSendToWeixinWithUrl(
const eWechatScene& scene,
unsigned char* title,
unsigned char* desc,
unsigned char* url,
unsigned char* mediaTagName,
unsigned char* thumbImgData,
const int& thumbImgDataLen,
unsigned char* messageExt
unsigned char *userOpenId //이 매개 변수는 버전 3.3.0부터 추가되었습니다.));
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
scene | eWechatScene 열거 | 위챗 채팅 또는 모멘트에 로고 발송 |
title | unsigned char* | 제목, 512B 초과 불가 |
desc | unsigned char* | 요약 정보, 1KB 초과 불가 |
url | unsigned char* | 클릭해 열 수 있는 대상 Url, 길이 10KB 초과 불가 |
mediaTagName | unsigned char* | 이 값은 위챗 총 통계로 전송되며 다음과 같은 값을 선택 입력할 수 있습니다. " MSG_INVITE” : "MSG_SHARE_MOMENT_HIGH_SCORE” 초대 : 이번 주 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_BEST_SCORE" : 이력 내 베스트를 모멘트에서 공유 "MSG_SHARE_MOMENT_CROWN" : 금메달을 모멘트에서 공유 "MSG_SHARE_FRIEND_HIGH_SCORE" : 이번 주 베스트를 친구에게 전송 "MSG_SHARE_FRIEND_BEST_SCORE" : 이력 내 베스트를 친구와 공유 "MSG_SHARE_FRIEND_CROWN" : 금메달을 친구와 공유 "MSG_friend_exceed" : 초과분 나눠 갖기 "MSG_heart_send" : 하트 보내기 |
thumbImgData | unsigned char* | 썸네일 파일 데이터 |
thumbImgDataLen | int | 썸네일 데이터 길이, 크기는 32K 초과 불가 |
messageExt | unsigned char* | 게임 자체 정의 투명 전송 필드는, 구조화 공유의 특수 설명 |
userOpenId | unsigned char* | 특정 친구에게 공유하도록 지정하면 문자열을 전달할 수 있습니다. 3.3.0 버전은이 매개 변수를 추가하기 시작합니다. |
4) 반환값
없으며, 공유 결과는 OnShareNotify
콜백을 통해 게임에 반환합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGSendToWeixinWithUrl(WechatScene_Session,
(unsigned char*)"공유 제목",
(unsigned char*)"공유 내용",
(unsigned char*)"http://www.baidu.com",
(unsigned char*)"MSG_INVITE",
(unsigned char*)[data bytes],
(int)[data length],
(unsigned char*)"msdkwuwuwu"
(unsigned char *)"");
6) 특수 설명
없음
7) 용어 해석
없음
모바일 QQ 게임 센터 상세 정보 페이지
종합 설명
모바일QQ 게임 상세 정보 페이지는 모바일QQ에서 우수 게임에 대하여 게임 센터에서 상세 정보 페이지를 디스플레이할 수 있게 해 주는 기능으로, 해당 페이지를 이용해 다운로드, 디스플레이, 게임으로 이동 등의 기능을 제공할 수 있으며, 사용 전에 게임 운영 매니저가 모바일QQ 게임 센터에서 설정해야 합니다. 모바일QQ에서 공유하는 targetUrl 파라미터는, 모바일QQ 게임 센터 상세 정보 페이지 링크를 입력할 경우, 해당 공유 정보를 클릭했을 때 이 게임의 게임 센터 상세 정보 페이지로 이동할 수 있으며, 그런 다음 자동으로 게임이 풀업됩니다.
게임 센터 상세 정보 페이지 링크 예시:
http://gamecenter.qq.com/gcjump?appid=100703379&pf=invite&plat=qq&from=androidqq&
ADTAG=gameobj.msg_invite&originuin=61793295&gamedata=gamedata&platformdata=platformdata;
필드 규칙:
필드 | 설명 |
---|---|
appid | 게임의 모바일QQ 게임 센터에서의 고유 식별 ID |
pf | 이력 문제로 인해 “invite”로 고정되며, 게임 센터에서 pf값 invite를 검출하면 직접 게임을 불러옵니다. |
plat | 소스 플랫폼, 값은 qq |
from | 정보 소스 플랫폼은 그 값에는, : androidqq:Android QQ;iphoneqq:iPhone QQ 등이 있을 수 있습니다. |
ADTAG | 표식은 다양한 구조화 정보 소스가 있으며 그 값에는 gameobj.msg_invite : 초청 gameobj.msg_exceed : 초과분 gameobj.msg_heart : 하트 보내기 gameobj.msg_pvp : 도전 gameobj.msg_show : 나눠 갖기 등이 있을 수 있습니다. |
originuin | 개설자 측 openId |
platformdata | 게임에 투명 전송하는 데이터 |
gamedata | 게임에 투명 전송하는 데이터 |
로그 상태 보유:
정보 공유를 클릭해 게임을 풀업해야 할 경우(또는 게임 센터에서 게임 기동), 등록 상태를 보유하며, 게임 운영 매니저가 모바일QQ 게임 센터에서 설정해야 합니다.
자체 정의 파라미터 회신:
게임이 모바일QQ 공유 시, 자체 정의 파라미터는 다른 한 사람의 플레이어가 정보 공유를 클릭해 게임을 풀업할 때 게임 클라이언트에 회신될 수 있습니다. 이 기능을 활용해, 게임에서 온라인 상태가 아닌 플레이어를 오프라인 채팅 등의 플레이 방법으로 초대할 수 있습니다.
모바일QQ 공유 시 targetUrl 파라미터에 모바일QQ 게임 센터 상세 정보 페이지를 입력할 경우, 선택 가능한 platformdata 또는 gamedata 필드에서 게임 자체 정의 파라미터를 입력할 수 있습니다. 플레이어가 이 정보 공유창을 클릭하면, 게임 풀업 시에 게임 클라이언트가 리마인더 콜백 WakeupEven을 수신할 수 있고, wakeupRet는 모바일QQ 게임 센터 상세 정보 페이지 링크 내 platformdata 및 gamedata 필드를 투명 전송합니다.
자체 정의 파라미터 추출 예시:
void MyObserver::OnWakeupNotify(WakeupRet& wakeupRet)
{
// TODO GAME
std::string platformdata, gamedata;
std::vector<KVPair> pairs = ret.extInfo;
foreach(KVPair pair in pairs)
{
if (pair.key.Equals("platformdata"))
{
platformdata = pair.value;
}
if (pair.key.Equals("gamedata"))
{
gamedata = pair.value;
}
}
}
그중에서 OnWakeupNotify
의 처리는 다른 계정 처리를 참조하십시오.
1) 기능 설명
사용자가 내장 브라우저를 통해 위챗 게임 존을 열고 이미지와 문자를 위챗 게임 존에서 공유할 수 있게 해 줍니다.
2) 인터페이스 선언
void WGShareToWXGameline(unsigned char* imgData,const int& imgDataLen,unsigned char* gameExtra);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
imgData | unsigned char* | 공유하는 이미지 데이터 |
imgData | int | 공유하는 이미지 데이터의 길이 |
gameExtra | unsigned char* | 공유하는 게임 자체 정의 파라미터에서, 파라미터는 url 뒤에 추가할 수 있습니다. |
4) 반환값
없음.
5) 예시 코드
UIImage *image = [UIImage imageNamed:@"news.jpg"];
NSData* data = UIImageJPEGRepresentation(image, 1.0);
WGPlatform::GetInstance()->WGShareToWXGameline((unsigned char*)[data bytes],(int)[data length],(unsigned char*)"10000");
6) 특수 설명
이미지 데이터의 크기는 512KB를 초과할 수 없으며, 이를 초과하는 이미지는 게임 자체에서 압축 처리합니다. MSDK는 이미지에 대해 어떠한 처리도 하지 않습니다.
gameExtra 게임 자체 정의 파라미터는 작업에 Base64 인코딩 처리 후 전달을 건의하며, MSDK의 이 파라미터는 바로 투명 전송이며 어떠한 처리도 하지 않는 동시에, 이 파라미터의 길이 기호의 url 길이 요건을 충족시켜야 합니다.
7) 용어 해석
없음
위챗 DeepLink
1) 기능 설명
위챗 DeepLink는 게임 내에서 WGOpenWeiXinDeeplink 인터페이스를 호출해 직접 위챗을 풀업하고 위챗 게임 센터 페이지, 상세 정보 페이지, 게임 데이터베이스 및 자체 정의 URL로 이동할 수 있는 기능을 가리키며, DeepLink 기능의 개통 및 설정을 위해서는 위챗 게임 센터로 연락하셔야 합니다. MSDK2.12.0 버전부터 이 기능을 제공합니다.
2) 인터페이스 선언
void WGOpenWeiXinDeeplink(unsigned char* link);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
link | unsigned char* | 구체적으로 링크 deeplink는, 다음과 같이 입력 가능: INDEX: 위챗 게임 센터 초기 페이지로 이동, DETAIL: 위챗 게임 센터 상세 정보 페이지로 이동, LIBRARY: 위챗 게임 센터 게임 데이터베이스로 이동, 구체적인 링크 url (위챗 게임 센터에서 이 url을 먼저 설정해야 함) |
4) 반환값
없음.
5) 예시 코드
WGPlatform::GetInstance()->WGOpenWeiXinDeeplink((unsigned char*)"INDEX");
6) 특수 설명
-
DeepLink 기능은 위챗 게임 센터로 연락해 개통 및 설정해야 합니다.
-
자체 정의 URL은 위챗 게임 센터에서 먼저 설정을 마쳐야 하며 호출 인터페이스에서 전달하는 파라미터 문자와 완전히 일치해야 합니다. 위챗 게임 센터에서 “http://www.qq.com/”을 설치한 경우, 인터페이스 link 파라미터는 “http://www.qq.com/”를 전송해야 하며, “http://www.qq.com”을 전송하면 실패할 수 있습니다.
7) 용어 해석
없음
1) 기능 설명
위챗은 미니앱에 기초해 새로운 특성의 공유 기능을 제공합니다.
2) 인터페이스 선언
void WGSendToWXWithMiniApp(const eWechatScene &scene,
const unsigned char *title,
const unsigned char *desc,
const unsigned char *thumbImgData,
const int &thumbImgDataLen,
const unsigned char *webpageUrl,
const unsigned char *userName,
const unsigned char *path,
bool withShareTicket,
const unsigned char *messageExt,
const unsigned char *messageAction),
const unsigned char *mediaTagName,//이 매개 변수는 버전 3.3.0부터 추가되었습니다.
const eMiniProgramType &type,//이 매개 변수는 버전 3.3.0부터 추가되었습니다.
const unsigned char *userOpenId //이 매개 변수는 버전 3.3.0부터 추가되었습니다.);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
scene | eWechatScene | 공유 환경(채팅/모멘트)은 현재 채팅 Session만 지원됩니다. |
title | unsigned char* | 제목 공유, 길이는 512B 초과 불가 |
desc | unsigned char* | 내용 설명, 길이는 1KB 초과 불과 |
thumbImgData | unsigned char* | 미니앱 썸네일, IOS: 32K 이하(과거 버전 사용), 128K 이하(새 버전) Android: 32K 이하(과거 버전) |
thumbImgDataLen | int | 미니앱 썸네일 길이 |
webpageUrl | unsigned char* | 과거 버전 위챗으로 해당 미니앱을 열어 공유할 경우, 링크의 일반 웹페이지 url에 호환됩니다.(필수 입력, 임의의 url 가능, 과거 버전 호환) |
userName | unsigned char* | 미니앱 username으로, 예를 들어 gh_d43f693ca31f(필수 입력, 임의의 url 가능, 과거 버전 호환) |
path | unsigned char* | 미니 앱 path는, 해당 필드를 통해 미니앱의 임의의 웹페이지로 이동할 수 있습니다.(이동하지 않을 경우, 기본은 웹사이트 첫 화면) |
withShareTicket | bool | shareTicket 보유 상태로 전송 여부(미니앱 페이지에 사용자의 측정 데이터가 표시되고 미니앱이 그룹에서 공유 가능할 경우, YES로 설정해야 함) |
messageExt | unsigned char* | 필요 없을 경우 문자열을 공백으로 둘 수 있음 |
messageAction | unsigned char* | 필요 없을 경우 문자열을 공백으로 둘 수 있음 |
mediaTagName | unsigned char* | 이 매개 변수는 버전 3.3.0부터 추가되었습니다.이 값은 통계를 위해 WeChat에 전달됩니다. |
type | eMiniProgramType | 애플릿 버전을 애플릿 버전에 해당하는 Release (0), Test (1) 및 Preview (2) 버전으로 구분하여 지정하십시오 .3.3.0 버전은이 매개 변수를 추가하기 시작합니다. |
userOpenId | unsigned char* | 특정 친구에게 공유하도록 지정하면 문자열을 전달할 수 있습니다. 3.3.0 버전은이 매개 변수를 추가하기 시작합니다. |
4) 반환값
설정된 글로벌 콜백의 OnShareNotify(ShareRet& shareRet) 콜백을 통해 데이터를 게임으로 반환하면, shareRet.flag 값이 반환 상태를 표시합니다. 가능한 값과 설명은 다음과 같습니다.
eFlag_Succ: 공유 성공
eFlag_Error: 공유 실패
5) 예시 코드
WGPlatform::GetInstance()->WGSendToWXWithMiniApp(WechatScene_Session,
(unsigned char*)"미니앱 공유 테스트",
(unsigned char*)"테스트하세요",
(unsigned char*)[data bytes],
(int)[data length],
(unsigned char*)"https://www.baidu.com",
(unsigned char*)"gh_e9f675597c15",
(unsigned char*)"page/indexSelAddr/index",
true,
(unsigned char*)"",
(unsigned char*)""
(unsigned char *)"MSG_INVITE",
ProgramType_Release,
(unsigned char*)""););
6) 특수 설명
공유를 시작하는 App과 미니앱이 같은 위챗 오픈 플랫폼 계정에 속해 있는 것을 요구합니다.
위챗 클라이언트 버전이 6.5.8보다 낮을 경우, 미니앱 유형 공유는 자동으로 웹사이트 유형 공유로 변환됩니다. 개발자는 웹페이지 링크 필드를 입력하여 낮은 버전의 클라이언트가 정상적으로 웹페이지 링크를 열 수 있도록 해야 합니다.
미니앱의 초기 ID 획득 방법: 미니앱 백그라운드-설정-기본 설정- 계정 정보로 이동하십시오.
7) 용어 해석
없음
1) 기능 설명
위챗 측에서 제공하는 게임 동영상을 위챗 모멘트 기능에서 공유합니다
.
2) 인터페이스 선언
void WGSendToWeixinWithVideo(const eWechatScene &scene,
const unsigned char *title,
const unsigned char *desc,
const unsigned char *thumbUrl,
const unsigned char *videoUrl,
VideoParams &videoParams,
const unsigned char *mediaTagName,
const unsigned char *messageAction,
const unsigned char *messageExt);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
scene | unsigned char* | 공유하는 환경은, 현재 위챗 모멘트만 지원됩니다.: WechatScene_Timeline |
title | unsigned char* | 제목 공유, 길이는 512B 초과 불가 |
desc | unsigned char* | 내용 설명, 길이는 1KB 초과 불과 |
thumbUrl | unsigned char* | 동영상 썸네일 URL |
videoUrl | unsigned char* | 동영상의 URL 공유 |
videoParams | VideoParams | 이 struct는 android, ios 상의 대응하는 필드가 다릅니다. android는 동영상 경로:android_videoPath를 입력해야 합니다. ios는 스스로 동영상 데이터 ios_videoData 및 동영상 데이터 길이 ios_videoDataLen를 읽어들일 필요가 있습니다. 대응하는 ios 상의 필드: videoParams.videoData: 동영상 파일 데이터의 경우, sdk는 크기 10M 초과 불가, videoParams.videoDataLen:동영상 파일 데이터 길이의 경우, sdk는 크기 10M 초과 불가. |
mediaTagName | unsigned char* | 데이터 통계용은 MSG_SHARE_MOMENT_VIDEO 전송을 권장합니다. |
messageAction | unsigned char* | 게임 백그라운드로의 투명 전송은, 해당 필드를 사용해 정보를 투명 전송함으로써 백그라운드에서 해당 모멘트의 일련의 필드를 설치하며 그 형식은 action_type#param입니다. |
messageExt | unsigned char* | 게임 기동 시에 게임 측에 투명 회신합니다. |
4) 반환값
설정된 글로벌 콜백 OnShareNotify(ShareRet& shareRet) 콜백을 통해 데이터를 게임으로 반환하면, shareRet.flag 값이 반환 상태를 표시합니다. 가능한 값과 설명은 다음과 같습니다.
eFlag_Succ: 공유 성공
eFlag_Error: 공유 실패
5) 예시 코드
NSString *testVideoPath = [[NSBundle mainBundle] pathForResource:@"WeChatSight" ofType:@"mp4"];
FILE* mp4File = fopen((const char*)[testVideoPath UTF8String],"rb");
if(mp4File == NULL)
return;
fseek(mp4File, 0L, SEEK_END);
long size = ftell(mp4File);
byte* mp4Buf = new byte[size+ 1];
fseek(mp4File,0x0L,SEEK_SET);
fread(mp4Buf, sizeof(mp4Buf[0]), size, mp4File);
fclose(mp4File);
unsigned char* sVideoData = mp4Buf;
int iVideoLen = (int)size;
VideoParams videoParam;
videoParam.ios_videoData = sVideoData;
videoParam.ios_videoDataLen = iVideoLen;
WGPlatform::GetInstance()->WGSendToWeixinWithVideo(WechatScene_Timeline,
(unsigned char*)"게임 동영상",
(unsigned char*)"제왕의 영광의 시간",
(unsigned char*)"http://vweixinthumb.tc.qq.com/150/20250/snsvideodownload?filekey=30270201010420301e02020096040253480410d97d9ca5a4001348336662c5b432e50b020261820400&hy=SH&storeid=32303137303431373039343430323030306130393635613562303238613436663561333230613030303030303936&bizid=1023",
(unsigned char*)"http://shzjwxsns.video.qq.com/102/20202/snsvideodownload?filekey=30270201010420301e02016604025348041086277b0fa88402549570698994b49289020310eefe0400&hy=SH&storeid=32303137303530383038353035323030303832333037626533333166346336613965333230613030303030303636&bizid=1023",
videoParam,
(unsigned char*)"MSG_SHARE_MOMENT_VIDEO",
(unsigned char*)"MESSAGE_ACTION_SNS_VIDEO#gameseq=1491995805&GameSvrEntity=87929&RelaySvrEntity=2668626528&playersnum=10",
(unsigned char*)"msgExt");
6) 특수 설명
-
위챗 모멘트 동영상 공유 기능
-
동영상 형식은 현재 mp4만을 지원하며, 크기는 10M 초과 불가, 시간은 최대 10초로 Android는 현재 크기 3M 초과 불가.
-
너비와 높이는 1:2에서 3:1 사이이며 FPS는 30 초과 불가
-
동영상은 모멘트에서만 공유 가능(scene 값은 WXSceneTimeLine)
7) 용어 해석
없음
텍스트를 QQ존에 공유하기
1) 기능 설명
WGSendToQQWithText 인터페이스를 호출하여 텍스트를 QQ존에 공유 가능합니다. 3.3.0버전부터 해당 인터페이스를 새롭게 추가하였습니다.
2) 인터페이스 선언
void WGSendToQQWithText(unsigned char* text, unsigned char* extraScene, unsigned char* messageExt);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
text | unsigned char* | 공유하려는 내용 |
extraScene | unsigned char* | 공유 솔루션 구분. 홍보 내용 부가 항목(예를 들면 게임 푸시 메시지 하단에 게임 아이콘이 함께 출력하며, 해당 아이콘을 클릭 시 게임을 읽어오거나 다운로드 가능함) 출력 및 feed 클릭, 정의에 대해QQ존측과 논의가 필요.담당자: zeevcao |
messageExt | unsigned char* | 게임 커스트마이징(자체 정의) 필드, [메시지 공유]를 클릭하여 게임에 리턴시 pass through하며, 필요하지 않을 경우 빈 문자열(Null string)을 입력. |
4) 반환값
없음. 공유 결과는 OnShareNotify 콜백을 통해 게임에로 리턴합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGSendToQQWithText((unsigned char*)"text",
(unsigned char *)"1",
(unsigned char *)"msdk");
6) 특수 설명
없음
7) 명칭 해석
없음
미니앱 작동
1) 기능 설명
WGLaunchMiniApp 인터페이스를 호출하여 미니앱을 작동 가능합니다. 3.3.0 버전부터 해당 인터페이스가 추가됩니다.
2) 인터페이스 선언
void WGLaunchMiniApp(const unsigned char *userName,
const unsigned char *path,
const eMiniProgramType &type);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
userName | unsigned char* | 미니앱 오리지널 id 입력 |
path | unsigned char* | 미니앱 웹페이지중 파라미터가 적용된 루트를 읽어옴. 입력하지 않을 경우, 기본적으로 미니앱 홈페이지를 읽어옴 |
type | eMiniProgramType | 미니앱 버전을 지정함.release(0), test(1), preview(2) 등 3종 버전 유형으로 구분함. |
4) 반환값
없음
5) 예시 코드
WGPlatform::GetInstance()->WGLaunchMiniApp((unsigned char*)"gh_eaef65657c15",
(unsigned char*)"page/indexSelAddr/index",
ProgramType_Release);
6) 특수 설명
없음
7) 명칭 해석
없음
모바일 QQ ARK공유
1 종합 설명
ARK공유는 모바일 QQ를 통해 채팅에 공유하는 것으로, ARK공유는 APP ID를 제공하여 모바일 QQ 화이트 리스트에 추가한 후, 모바일 QQ팀과 구체적인 프로토콜에 대해 논의를 해야 합니다.
2 콜백
구조화 공유의 콜백 내용을 참고 바랍니다.
3 모바일 QQ ARK 공유
1) 기능 설명
WGSendToQQWithArk인터페이스를 콜백하여, ARK메세지를 모바일 QQ 채팅창에 공유 가능
2) 인터페이스 선언
void WGSendToQQWithArk(
const eQQScene& scene,
unsigned char* title,
unsigned char* desc,
unsigned char* url,
unsigned char* imgUrl,
unsigned char* jsonString
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
scene | eQQScene열거 | 표식에서 모바일 QQ대화 발송; scene에서는 잠시동안 오직 QQ대화만 지원하며, 공간을 지원하지 않음 |
title | unsigned char * | 타이틀; 80글자 초과 불가능 |
desc | unsigned char * | 내용 정보; 130글자 초과 불가능 |
url | unsigned char * | 내용 이동url,게임에 대응되는 게임 센터 상세 페이지를 추가; 120글자 초과하지 않는 것을 건의 |
imgUrl | unsigned char * | 정보 공유 축소 이미지Url;경로 혹은 네트워크Url;이미지는 1M 초과하지 말아야 함 |
jsonString | unsigned char * | ARK공유jsonString (업무측과 모바일 QQ에서 ARK 개발 시, 어떤 사양으로 개발할지 미리 논의해야 함) |
4) 반환값
없음, 공유 결과는WGPlatformObserver를 통해 OnShareNotify함수 콜백하여, 게임 되돌아오기.
5) 예시 코드
WGPlatform::GetInstance()->WGSendToQQWithArk((eQQScene)cScene,
(unsigned char *)"it's title",
(unsigned char *)"it's desc",
(unsigned char *)"https://speed.gamecenter.qq.com/pushgame/v1/detail?appid=100703379&_wv=2164260896&_wwv=448&autodownload=1&autolaunch=1&autosubscribe=1&ADTAG=gameobj.msg_invite&gamedata=gamedata",
(unsigned char *)"http://q.qlogo.cn/qqapp/100703379/C1BF66286792F24E166C9A5D27CFB519/100",
(unsigned char*)""{"app":"com.tencent.gamecenter.gameshare","view":"noDataView","desc":"템플릿설명","prompt":"메시지 프롬프트","ver":"0.0.0.1","config":{"type":"normal"},"meta":{"shareData":{"appid":"1104466820","type":"image","url":"http%3a%2f%2fimgcache.qq.com%2fclub%2fmars%2fimg_upload%2fgc843_wzgame.png","width":601,"height":330,"buttons":[{"text":"TA의 기록","url":"http%3a%2f%2fcdn.vip.qq.com"}]}}}"";
6) 특수 설명
비고:정상적으로 해당 기능을 사용하기 위해, 개발자에서 아셔야 할 내용:
(1)QQ클라이언트 8.0.0 이전 버전에서, ARK 공유 실패 시, 자동으로 구조화 메세지를 통해 공유를 진행하도록 전환. 파라미터 입력: title,desc,url,imgUrl은 구조화 메세지의 파라미터이기도 합니다. ARK공유 성공 시, title,desc,url,imgUrl 작용이 없습니다.
(2)QQ클라이언트 8.0.0 버전부터, ARK파라미터는 반드시 정확하게 입력해야 하며, 미입력 시, 성공적으로 ARK형태의 정보를 공유할 수 없습니다. 만약 오류 시, 공유 실패
(3)ARK 공식 관리 측에서 게임을 가입해야 하며 ARK카드 리소스를 제공해야 합니다. 리소스 심사 후 게임에 대해 해당 권한이 부여됩니다. 관리측 사이트: http://arkapp.oa.com:8080/app_light/dst/index.html#/ (해당 사이트는 내부 네트워크에서 방문해야 하며, 텐센트 담당자님께서 협조하여 처리할 수 있으며, 카드 심사와 관련된 구체적인 내용은 ARK_Helper에 문의 바랍니다)
(4)IOS의 비 ARK가 TIM에서 공유할 시, scheme중 tim을 추가해야 합니다: 경로는 아래와 같습니다: IOS의 Info.plist 중, Information Property List -> LSApplicationQueriesSchemes에 tim 추가
ARK클라이언트 공유는 모바일 QQ 게임 센터와 논의하여 연결해야 하며, 상세 절차는 하기 내용을 참고 바랍니다.
http://km.oa.com/group/39817/articles/show/375226 (해당 절차 파일은 내부 네트워크를 통해 열람이 가능하며, 관련 담당자님이 게임 센터와 논의를 진행해야 합니다. 게임 센터 담당자: zealzhuang、v_shxizhong)
7) 명칭 해석
없음