概述
分享模块提供游戏分享个性化消息到手Q/微信的会话(包括好友和群)、空间、朋友圈的能力,常用于邀请、炫耀、送心、活动分享等。依托于腾讯关系链的MSDK分享充分发挥了手Q、微信关系链优势,可有效触达用户,便于增加新进和回流,提升游戏活跃,拓展游戏玩法。
显示详情接入向导
1 前置条件
a) 您已经按初始化模块说明完成 初始化。
b) 确认您的游戏分享权限已开通。完成游戏注册后已根据您的游戏类别开通相应权限,如果您调用登录接口返回"-303, no permission",请联系MSDK联调支持的同学。
c)确认用户已经完成手Q/微信授权登录
2 参考Demo示例
手Q分享示例参考 Assets\Example\MsdkDemo.cs 脚本的 ShowQQ() 方法中分享部分。
微信分享示例参考 Assets\Example\MsdkDemo.cs 脚本的 ShowWX() 方法中分享部分。
3 绑定接口到按钮
绑定接口到按钮参考登录模块的接入向导的Step3。分享接口调用示例如下:
public void ClickedShare()
{
// 点击按钮后调用MSDK分享接口
string title = "QQ分享-title";
string desc = "QQ分享-desc";
string imgNetUrl = "http://qzonestyle.gtimg.cn/open_proj/proj_open_v2/ac/home/qrcode.jpg";
string targetUrl = "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";
WGPlatform.Instance.WGSendToQQ(eQQScene.QQScene_QZone, title, desc, targetUrl, imgNetUrl, imgNetUrl.Length);
}
不同的分享接口示例参考后续各个接口说明的代码示例部分。
4 运行查看结果
点击Unity中间上方的三角图标在PC环境下运行程序,然后点击 Game 面板的按钮
先点击登录完成授权登录,然后点击分享完成分享,此时查看 Console 可看到如下登录接口调用成功并回调的日志
最后,打出安装包并在手机上安装运行,可以看到点击登录按钮后拉起了手Q并完成登录授权,再点击分享按钮后拉起手Q完成分享后可在手Q会话或空间中查看分享效果。
5 调用此模块其他接口
完成前面Step1-Step4步骤后,即已完全接入此模块,可直接调用此模块的其他接口不需要额外的配置。此模块各部分说明如下。
结构化分享:结构化分享需要拉起手Q/微信,分享展示为左图右文的结构。
大图分享:大图分享需要拉起手Q/微信,分享展示为一张图片。
音乐分享:音乐分享需要拉起手Q/微信,分享展示为左图右文,点击图片可直接播放音乐或跳转到链接播放音乐。
后端分享:后端分享不需要拉起手Q,可直接在游戏内调用接口即可分享到同玩好友。
微信链接分享:微信链接分享需要拉起微信分享,点击消息可打开网页。
手Q富图分享:手Q富图分享可通过拉起手Q发送丰富的图片到QQ空间。
手Q视频分享:手Q视频分享可通过拉起手Q分享本地视频到QQ空间。
手Q ARK分享:手Q ARK分享可通过拉起手Q分享到会话、QQ空间。
手Q游戏中心详情页:手Q游戏中心详情页是手Q提供给精品游戏在游戏中心展示详情的页面,此页面提供下载,展示,跳转游戏等能力。
分享到微信游戏圈:游戏提供图片数据通过内置浏览器分享到微信游戏圈,目前图片数据不能超过512K。
1 概括说明
结构化分享需要拉起手Q/微信,可分享到会话和QQ空间,无法分享到微信朋友圈。
2 注册回调
1)功能描述
为接收MSDK的分享回调,您需要注册回调事件ShareEvent并根据ShareRet进行处理。
2)接口声明
public delegate void ShareDelegate(ShareRet shareRet);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
shareRet | ShareRet类 | 分享结果信息类 |
4)返回值
无
5)示例代码
MsdkEvent.Instance.ShareEvent += (ShareRet shareRet) =>
{
switch (ret.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)名词解释
无
3 微信结构化分享
1)功能描述
您可以调用WGSendToWeixin接口将结构化消息分享到微信会话。
2)接口声明
void WGSendToWeixin(string title,
string desc,
string mediaTagName,
byte[] imgData,
int imgDataLen,
string messageExt,
string userOpenId);//3.3.0版本开始新增userOpenId参数
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
title | string | 标题;不能超过512字节 |
desc | string | 概要信息;不能超过1K |
mediaTagName | string | 此值会传到微信供统计用,点击 规范 可见详情 |
imgData | byte[] | 缩略图文件数据 |
imgDataLen | int | 缩略图数据长度;大小不能超过32k |
messageExt | string | 游戏自定义透传字段,详见下文特殊说明;不需要的话可以填写空串 |
userOpenId | string | 指定分享给特定的好友(可传空串、openid或sopenid);3.3.0版本开始新增该参数 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏
5)示例代码
string title = "微信分享-title";
string desc = "微信分享-desc";
string mediaTagName = "MSG_INVITE";
byte[] imgData = imgData;
int imgDataLen = imgData.Length;
string messageExt = "SendToWeixin_extInfo";
string userOpenId = ""; //3.3.0版本开始新增该参数
WGPlatform.Instance.WGSendToWeixin(title, desc, mediaTagName, imgData, imgData.Length, messageExt, "");
6)特殊说明
参数 messageExt 可在分享后玩家点击时回传给游戏。具体过程:玩家A分享微信消息(带有messageExt参数)给玩家B,玩家B点击收到的这条消息拉起游戏,那么玩家B的游戏客户端会收到回调事件WakeupEvent(WakeupRet wakeupRet),WakeupEvent的wakeupRet.messageExt即为玩家A分享时传递的messageExt参数。WakeupEvent的注册参考异账号处理。
7)名词解释
无
4 手Q Android结构化分享
1)功能描述
您可以调用WGSendToQQ接口将结构化消息分享到手Q会话、空间;支持空间新能力,详细说明参见空间新能力说明
2)接口声明
void WGSendToQQ(
eQQScene scene,
string title,
string desc,
string targetUrl,
string imgUrl,
int imgUrlLen,
string tagname,//3.3.18版本开始新增该参数
string messageExt//3.3.18版本开始新增该参数
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 标识发送手Q会话或者Qzone |
title | string | 标题;不能超过80字节 |
desc | string | 概要信息;不能超过130字节 |
targetUrl | string | 内容的跳转Url;建议不超过120字节,若超出会对比较长的url进行换短链处理 |
imgUrl | string | 分享消息缩略图Url;本地路径或者网络Url;图片大小不能超过1M |
imgUrlLen | int | 分享消息说略图Url长度 |
tagname | string | 3.3.18版本开始新增该参数;此值会传到QQ供统计用 |
messageExt | string | 3.3.18版本开始新增该参数;游戏自定义透传字段,不需要的话可以填写空串 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏
5)示例代码
string title = "QQ分享-title";
string desc = "QQ分享-desc";
string imgNetUrl = "http://qzonestyle.gtimg.cn/open_proj/proj_open_v2/ac/home/qrcode.jpg";
string targetUrl = "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";
string tagname = "tagname";//3.3.18版本开始新增该参数
string messageExt = "messageExt";//3.3.18版本开始新增该参数
WGPlatform.Instance.WGSendToQQ (eQQScene.QQScene_QZone, title, desc, targetUrl, imgNetUrl, imgNetUrl.Length, tagname, messageExt);
6)特殊说明
a) targetUrl 若填手Q游戏中心详情页链接, 点击消息可拉起游戏并传回自定义参数,详细内容参考:手Q游戏中心详情页。
b) imgUrl为本地图片路径时,此本地图片应存放于手Q/微信可访问的位置,如sdcard存储区(/storage/sdcard0)。
7)名词解释
无
5 手Q iOS结构化分享
1)功能描述
您可以调用WGSendToQQ接口将结构化消息分享到会话;支持空间新能力,详细说明参见空间新能力说明
2)接口声明
void WGSendToQQ(
eQQScene scene,
string title,
string desc,
string targetUrl,
byte[] imgData,
int imgDataLen
string tagname,//3.3.18版本开始新增该参数
string messageExt//3.3.18版本开始新增该参数
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 标识发送手Q会话或者Qzone |
title | string | 标题;字符串长度不能超过128 |
desc | string | 概要信息;字符串长度不能超过512 |
targetUrl | string | 内容的跳转Url |
imgData | byte[] | 缩略图文件数据;图片大小不能超过1M |
imgDataLen | int | 缩略图数据长度 |
tagname | string | 3.3.18版本开始新增该参数;此值会传到QQ供统计用 |
messageExt | string | 3.3.18版本开始新增该参数;游戏自定义透传字段,不需要的话可以填写空串 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏
5)示例代码
string title = "QQ分享-title";
string desc = "QQ分享-desc";
string imgNetUrl = "http://qzonestyle.gtimg.cn/open_proj/proj_open_v2/ac/home/qrcode.jpg";
string targetUrl = "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";
string tagname = "tagname";//3.3.18版本开始新增该参数
string messageExt = "messageExt";//3.3.18版本开始新增该参数
WGPlatform.Instance.WGSendToQQ (eQQScene.QQScene_Session, title, desc, targetUrl, imgData, imgData.Length, tagname, messageExt);
6)特殊说明
targetUrl 若填手Q游戏中心详情页链接, 点击消息可拉起游戏并传回自定义参数,详细内容参考:手Q游戏中心详情页。
7)名词解释
无
8)
QQ 空间新能力(带小尾巴,支持配置热区、webview弹窗、轨迹手势)由平台提供,具体功能需要由游戏侧和平台沟通,在平台侧进行配置。分享的视频、跳转链接由游戏侧根据平台提供的接入文档生成,复用到 MSDK 分享邀请消息到空间的接口。
空间新分享能力介绍(由平台提供):
- 内部访问:http://km.oa.com/group/mobileqqgamecenter/articles/show/382797
- 外部访问(以 km 文档为准):https://docs.qq.com/doc/DY2lhTHRld05aaU12
空间新分享能力接入文档(由平台提供):
- 内部访问:http://km.oa.com/group/mobileqqgamecenter/articles/show/387806
- 外部访问(以 km 文档为准):https://docs.qq.com/doc/DY3BOZFpyR3N0Tkx6
空间新能力需要和平台沟通接入,可联系MSDK助手对接
QQ 空间新能力特殊说明:
1、分享图片到空间时,targetUrl 传跳转链接,imgUrl(Android;图片示例:http://qzonestyle.gtimg.cn/open_proj/proj_open_v2/ac/home/qrcode.jpg;备注:该链接仅可用于项目验证查看效果,项目发布需要使用项目侧真实地址)、imgData(iOS,[data bytes]) 传分享的图片,支持本地图片(Android)
2、分享视频到空间时, targetUrl 传视频链接(示例链接:https://v.qq.com/x/page/e08824fm35c.html?_sharetype=1&_shareid=12345&_appid=1106396765;备注:该链接仅可用于项目验证查看效果,项目发布需要使用项目侧真实地址),imgUrl(Android)、imgData(iOS) 传分享时显示的缩略图,支持本地图片(Android)
分享图片到空间效果如下:
分享视频到空间效果如下:
6 高级用法
1) 功能描述
游戏在分享结构化消息时可附加一段自定义信息(字符串)到 结构化消息中,另一位玩家点击此消息会自动拉起游戏并将附加的自定义信息通过OnWakeupNotify透传给游戏。 此能力可用于邀请线下好友对战,并快速加入对战房间进行游戏。例如:
a) 玩家A开启了一个对战房间11,此时玩家B不在线;
b) A分享一个QQ/Wechat结构化消息(附加自定义信息,如房间号11及A的openid)给B;
c) B在QQ/WeChat中点击了此消息,此时会拉起游戏并传递附加的信息(房间号11及A的openid等)给游戏客户端;
d) 游戏可根据附加的房间号11及A的openid等信息,让B快速加入A的对战房间11,两玩家即可开始对战。
2) 参数说明
WeChat 可通过接口WGSendToWeixin 中的messageExt 参数透传自定义信息。
QQ 可通过接口 WGSendToQQ 中的targetUrl 设置为游戏中心详情页Url并添加gamedata参数透传自定义信息。例如
游戏中心详情页Url为:
https://speed.gamecenter.qq.com/pushgame/v1/detail?appid=100703379&_wv=2164260896&_wwv=448&autodownload=1&autolaunch=1&autosubscribe=1&ADTAG=gameobj.msg_invite
在Url中添加自定义信息”CustomData”:
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=CustomData
3) 示例代码
分享结构化消息并附加自定义信息:
#if UNITY_ANDROID
WGPlatform.Instance.WGSendToQQ (eQQScene.QQScene_Session, title, desc, targetUrl, imgLocalUrl, imgLocalUrl.Length);
#else
WGPlatform.Instance.WGSendToQQ (eQQScene.QQScene_Session, title, desc, targetUrl, imgData, imgData.Length);
#endif
点击分享消息启动,接收并处理附加的自定义信息:
MsdkEvent.Instance.WakeupEvent += (WakeupRet ret) =>
{
Debug.Log(ret.ToString());
string gameCustomData = "";
if ((int)ePlatform.ePlatform_QQ == ret.platform) {
List<KVPair> extInfo = ret.extInfo;
foreach(KVPair pair in extInfo) {
if ("gamedata".Equals(pair.key)) {
gameCustomData = pair.value;
break;
}
}
} else if ((int)ePlatform.ePlatform_Weixin == ret.platform) {
gameCustomData = ret.messageExt;
}
......
}
1 概括说明
大图分享需要拉起手Q/微信,可分享到会话、QQ空间及微信朋友圈。
2 注册回调
参见结构化分享的注册回调
3 微信大图分享-图片数据
1)功能描述
您可以调用WGSendToWeixinWithPhoto接口将大图消息分享到微信会话、朋友圈。
2)接口声明
void WGSendToWeixinWithPhoto(
eWechatScene scene,
string mediaTagName,
byte[] imgData,
int imgDataLen,
string messageExt,
string messageAction
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene枚举 | 标识发送微信会话或者朋友圈 |
mediaTagName | string | 此值会传到微信供统计用,点击 规范 可见详情 |
imgData | byte[] | 图文件数据 |
imgDataLen | int | 图数据长度;大小不能超过32K |
messageExt | string | 游戏自定义透传字段,详见结构化分享的特殊说明;不需要的话可以填写空串 |
messageAction | string | 保留字段;可以填写空串 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏
5)示例代码
string title = "微信分享-title";
string desc = "微信分享-desc";
string mediaTagName = "MSG_INVITE";
byte[] imgData = imgData;
int imgDataLen = imgData.Length;
string messageExt = "SendToWeixin_extInfo";
string messageAction = "";
WGPlatform.Instance.WGSendToWeixinWithPhoto(eWechatScene.WechatScene_Session, mediaTagName, imgData, imgDataLen, messageExt, messageAction);
6)特殊说明
无
7)名词解释
无
4 微信Android大图分享-图片路径
1)功能描述
在Android平台时使用图片数据的大图分享在图片数据大于1MB时部分机型会分享失败,可使用WGSendToWeixinWithPhotoPath接口分享高清大图。
2)接口声明
void WGSendToWeixinWithPhotoPath(
eWechatScene scene,
string mediaTagName,
string imgPath,
string messageExt,
string messageAction
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene枚举 | 标识发送微信会话或者朋友圈 |
mediaTagName | string | 此值会传到微信供统计用,点击 规范 可见详情 |
imgPath | string | 本地图片的路径;图片大小不能超过3MB |
messageExt | string | 游戏自定义透传字段,详见结构化分享的特殊说明;不需要的话可以填写空串 |
messageAction | string | 保留字段;可以填写空串 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏。
5)示例代码
string mediaTagName = "MSG_INVITE";
string imgLocalUrl = "/storage/sdcard0/test.png";
string messageExt = "SendToWeixin_extInfo";
string messageAction = "";
WGPlatform.Instance.WGSendToWeixinWithPhotoPath(eWechatScene.WechatScene_Session, mediaTagName, imgLocalUrl, messageExt, messageAction);
6)特殊说明
无
7)名词解释
无
5 手Q Android大图分享
1)功能描述
您可以调用WGSendToQQWithPhoto接口将大图消息分享到手Q会话、空间。
2)接口声明
void WGSendToQQWithPhoto(eQQScene scene, string imgFilePath, string tagname, string messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 标识发送手Q会话或者Qzone |
imgFilePath | string | 分享图片的本地文件路径;图片最短边大于640px时, 后台会对图片做压缩 |
tagname | string | 3.3.18版本开始新增该参数;此值会传到QQ供统计用 |
messageExt | string | 3.3.18版本开始新增该参数;游戏自定义透传字段,不需要的话可以填写空串 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏
5)示例代码
string imgLocalUrl = "/storage/sdcard0/test.png";
string tagname = "tagname";//3.3.18版本开始新增该参数
string messageExt = "messageExt";//3.3.18版本开始新增该参数
WGPlatform.Instance.WGSendToQQWithPhoto (eQQScene.QQScene_Session, imgLocalUrl, tagname, messageExt);
6)特殊说明
imgFilePath为本地图片路径,此本地图片应存放于手Q可访问的位置,如sdcard存储区(/storage/sdcard0);游戏侧不要重复使用同一路径,需要重新命名图片
安卓分享到手Q会话,图片大小不能超过5M;安卓分享到空间时,如果传本地文件,手Q内部会对过大的图片进行压缩,所以分享到空间时当前对图片大小暂无限制;iOS分享到手Q会话及空间,图片大小不能超过5M
7)名词解释
无
6 手Q iOS大图分享
1)功能描述
您可以调用WGSendToQQWithPhoto接口将大图消息分享到手Q会话、空间。
2)接口声明
void WGSendToQQWithPhoto(
eQQScene scene,
byte[] imgData,
int imgDataLen,
string tagname, //3.3.18版本开始新增该参数
string messageExt//3.3.18版本开始新增该参数
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 标识发送手Q会话或者Qzone |
imgData | byte[] | 图文件数据 |
imgDataLen | int | 图数据长度 |
tagname | string | 3.3.18版本开始新增该参数;此值会传到QQ供统计用 |
messageExt | string | 3.3.18版本开始新增该参数;游戏自定义透传字段,不需要的话可以填写空串 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏
5)示例代码
byte[] imgData = imgData;
int imgDataLen = imgData.Length;
string tagname = "tagname";//3.3.18版本开始新增该参数
string messageExt = "messageExt";//3.3.18版本开始新增该参数
WGPlatform.Instance.WGSendToQQWithPhoto(eQQScene.QQScene_Session,imgData, imgDataLen, tagname, messageExt);
6)特殊说明
无
7)名词解释
无
手Q 大图分享带自定义参数
1)功能描述
大图分享到空间能力,手Q空间侧需求针对传入内容,个性化匹配用户看到的小尾巴内容。实现个性化的操作结果。
2)接口声明
void WGSendToQQWithPhoto(eQQScene scene, ImageParams imageParams, string extraScene, string messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 分享的场景,目前只支持qq空间QQScene_QZone |
imageParams | ImageParams | 此struct在android、ios上对应的字段不同。android需要填写图片路径:android_imagePath。 |
extraScene | string | 区分分享的场景,用于异化小尾巴展示和feeds点击行为,需与空间侧沟通定义,接口人:qqconnecthelper |
messageExt | string | 游戏自定义字段,点击分享消息回到游戏时会透传回游戏,不需要的话可以填写空串 |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
ImageParams imageParams;
imageParams.android_imagePath = "http://imgcache.qq.com/music/photo/mid_album_300/g/l/002ma2S64Gjtgl.jpg";
string extraScene = "MESSAGE_ACTION_SNS_CANVAS#Honor=1";
string messageExt = "messageExt";
WGPlatform.Instance.WGSendToQQWithPhoto(eQQScene.QQScene_QZone, imageParams, "MESSAGE_ACTION_SNS_CANVAS#Honor=1", messageExt);
6)特殊说明
注意如果使用的是android的java接口对应的函数为 WGSendToQQWithPhoto(eQQScene scene,String imgFilePath,String extraScene,String messageExt),其中imgFilePath请填写图片路径
7)名词解释
无
1 概括说明
后端分享不需要拉起手Q,可直接在游戏内调用接口即可分享到同玩好友。
2 注册回调
参见结构化分享的注册回调
3 手Q后端分享
1)功能描述
您可以调用WGSendToQQGameFriend接口将消息在好友的会话中展示或者通过手Q公众号“QQ手游”分享到目标用户。该接口平台侧已不再接受游戏接入,如有特殊需求请联系手Q游戏中心对接(已接入游戏可继续使用)
接入须知:
1、分享的内容只有手机QQ上才可以看到,PC QQ上看不到。
2、收发限制:
(1)结构化消息:
同一对号码发送接收,互动次数是一天一次
接收方,每天最多接收 5 条,每周最多接收 20 条
发送方,每天发给不同用户,最多发送 10 条,每周最多发送 40 条
(2)ark消息:
接收方,每天最多接收 5 条,接收自同一用户最多 3 条
发送方,每天最多 30 条,每周最多 100 条
3、通过"QQ手游"公众号接收的消息,平台侧会延时下发,于每日固定三个时间段(当前是每天12点,20点,22点)通过公众号下发,单用户每天最多收到3条公众号消息。
4、手Q后端分享提供了新的接入流程,新游接入时按照以下流程接入(已上线游戏没有影响),以下流程均需要业务对应腾讯接口人联系手Q游戏中心对接
(1)提供图片文案及申请gametag
(2)新增appid录入到AMS流程
(3)配置测试用游戏中心详情页(后续可更换为正式详情页)
(4)接口接入完成后验证分享是否成功
2)接口声明
bool WGSendToQQGameFriend(
int act,
string fOpenid,
string title,
string desc,
string targetUrl,
string imgUrl,
string previewText,
string gameTag,
string msdkExtInfo
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
act | int | 点击分享消息行为;1 拉起游戏,统一为拉起游戏 |
fOpenId | string | 分享目标玩家的openid |
title | string | 标题;不能超过80字节 |
desc | string | 概要信息;不能超过130字节 |
targetUrl | string | 游戏中心详情页地址,配置请参考:https://wiki.ssl.msdk.qq.com/Unity/share.html#Unity_QGameCenter |
imageUrl | string | 分享缩略图Url;只能为网络图片Url |
previewText | string | 预览文字,可选;不能超过45字节 |
gameTag | string | gameTag用于平台对分享类型的统计,比如送心分享、超越分享,该值由游戏制定并同步给手Q平台,目前的值有多种,仅列出部分参考,可同手Q平台沟通后填写: 1.通过公众号收到推送消息: "MSG_INVITE":邀请 "MSG_FRIEND_EXCEED":超越炫耀 "MSG_HEART_SEND":送心 "MSG_SHARE_FRIEND_PVP":PVP对战 2.通过C2C推送收到结构化消息: "MSG_RECALL":召回 "MSG_INVITE_NEW":邀请 3.ark消息: "MSG_RECALL_ARK":召回 "MSG_INVITE_ARK":邀请 "MSG_INVITE_FRIEND_ARK":拉新 |
4)返回值
false:参数不合法,未发起分享请求;true:分享请求发起成功。 分享结果通过ShareEvent回调返回游戏。
5)示例代码
string openid = "D51F963BA3E2571ABD8244D95F9B9AD0";
string title = "QQ分享-title";
string desc = "QQ分享-desc";
string previewText = "";
string gameTag = "MSG_FRIEND_EXCEED";
string msdkExtInfo = "msdkExtInfo";
string imgNetUrl = "http://qzonestyle.gtimg.cn/open_proj/proj_open_v2/ac/home/qrcode.jpg";
string targetUrl = "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";
WGPlatform.Instance.WGSendToQQGameFriend (1, openid, title, desc, targetUrl, imgNetUrl, previewText, gameTag, msdkExtInfo);
6)特殊说明
分享的内容只有手机QQ上才可以看到,PC QQ上看不到。同一用户每天最多能接收5条,最多从同一个用户每天接收3条。
7)名词解释
无
后端分享到群
1 概括说明
游戏公会/联盟内,用户可以直接分享结构化消息到微信公会群。游戏可以基于该接口做一些拉活的方案。调用接口为WGSendToWXGroup,结果会通过分享通用的 ShareEvent 回调给游戏。
2 注册回调
参见结构化分享的注册回调
3 后端分享到微信群
1)功能描述
此接口不需要拉起微信,可直接分享到玩家已加入的工会微信群。
2)接口声明
void WGSendToWXGroup(
int msgType,
int subType,
string unionid,
string title,
string description,
string messageExt,
string mediaTagName,
string imgUrl,
string msdkExtInfo
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
msgType | int | 消息类型,目前传1 |
subType | int | 分享类型,邀请填1,炫耀填2,赠送填3,索要填4 |
unionid | string | 工会ID |
title | string | 分享的标题 |
description | string | 分享的简介 |
messageExt | string | 游戏自定义透传字段,详见结构化分享的特殊说明;不需要的话可以填写空串 |
mediaTagName | string | 此值会传到微信供统计用,点击 规范 可见详情 |
imgUrl | string | 分享缩略图URL |
msdkExtInfo | string | 游戏自定义透传字段,通过分享结果 shareRet.extInfo 返回给游戏 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏
5)示例代码
string unionId = "110";
string title = "WX分享-title";
string desc = "WX分享-desc";
string messageExt = "messageExt";
string mediaTagName = "MSG_INVITE";
string imgNetUrl = "http://qzonestyle.gtimg.cn/open_proj/proj_open_v2/ac/home/qrcode.jpg";
string msdkExtInfo = "msdkExtInfo";
WGPlatform.Instance.WGSendToWXGroup(1, 1, unionId, title, desc, messageExt, mediaTagName, imgNetUrl, msdkExtInfo);
6)特殊说明
a) 接口需要参考工会id,因此必须将此工会绑定到微信群才能分享消息。 b) 此玩家必须先加入到工会群,才能分享消息,详见群模块
7)名词解释
无
1 概括说明
音乐分享需要拉起手Q/微信,可分享到会话、QQ空间及微信朋友圈。点击音乐消息可直接播放音乐或跳转到音乐网址播放。
2 注册回调
参见结构化分享的注册回调
3 微信音乐分享
1)功能描述
您可以调用WGSendToWeixinWithMusic接口将音乐消息分享到微信会话和朋友圈。
2)接口声明
void WGSendToWeixinWithMusic(
eWechatScene scene,
string title,
string desc,
string musicUrl,
string musicDataUrl,
string mediaTagName,
byte[] imgData,
int imgDataLen,
string messageExt,
string messageAction
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene枚举 | 标识发送微信会话或者朋友圈 |
title | string | 标题;不能超过512字节 |
desc | string | 概要信息;不能超过1K |
musicUrl | string | 点击消息后跳转的Url;长度不能超过10K |
musicDataUrl | string | 音乐数据Url(例http:// ***.mp3);长度不能超过10K |
mediaTagName | string | 此值会传到微信供统计用,点击 规范 可见详情 |
imgData | byte[] | 缩略图文件数据 |
imgDataLen | int | 缩略图数据长度;大小不能超过32K |
messageExt | string | 游戏自定义透传字段,详见结构化分享的特殊说明;不需要的话可以填写空串 |
messageAction | string | (音乐分享暂时不可自定义小尾巴,可传空)分享到朋友圈时,游戏可以自定义朋友圈小尾巴行为,详情点击这里 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏
5)示例代码
string title = "WX分享-title";
string desc = "WX分享-desc";
string mediaTagName = "MSG_INVITE";
string messageExt = "messageExt";
string messageAction = "WECHAT_SNS_JUMP_URL";
string musicUrl = "http://y.qq.com/i/song.html?songid=1135734&source=qq";
string musicDataUrl = "http://wiki.dev.4g.qq.com/v2/cry.mp3";
WGPlatform.Instance.WGSendToWeixinWithMusic(eWechatScene.WechatScene_Session, title, desc, musicUrl, musicDataUrl, mediaTagName, imgData, imgData.Length, messageExt, messageAction);
6)特殊说明
无
7)名词解释
无
4 手Q音乐分享
1)功能描述
您可以调用WGSendToQQWithMusic接口将音乐消息分享到手Q会话和空间。
2)接口声明
void WGSendToQQWithMusic(
eQQScene scene,
string title,
string desc,
string musicUrl,
string musicDataUrl,
string imgUrl
);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 标识发送手Q会话或者Qzone |
title | string | 标题;不能超过80字节 |
desc | string | 概要信息;不能超过130字节 |
musicUrl | string | 点击消息后跳转的Url |
musicDataUrl | string | 音乐数据Url(例http:// ***.mp3) |
imgUrl | string | 分享消息缩略图Url;本地路径或者网络Url |
4)返回值
无,分享结果通过ShareEvent回调返回游戏
5)示例代码
string title = "QQ分享-title";
string desc = "QQ分享-desc";
string imgNetUrl = "http://qzonestyle.gtimg.cn/open_proj/proj_open_v2/ac/home/qrcode.jpg";
string musicUrl = "http://y.qq.com/i/song.html?songid=1135734&source=qq";
string musicDataUrl = "http://wiki.dev.4g.qq.com/v2/cry.mp3";
WGPlatform.Instance.WGSendToQQWithMusic(eQQScene.QQScene_QZone,title, desc, musicUrl, musicDataUrl, imgNetUrl);
6)特殊说明
imgUrl为本地图片路径时,此本地图片应存放于手Q可访问的位置,如sdcard存储区(/storage/sdcard0)
7)名词解释
无
1 概括说明
微信链接分享需要拉起微信分享,点击消息可打开网页。
2 注册回调
参见结构化分享的注册回调
3 微信链接分享
1)功能描述
您可以调用WGSendToWeixinWithUrl接口将链接消息分享到微信会话和朋友圈。
2)接口声明
void WGSendToWeixinWithUrl(eWechatScene &scene,
string title,
string desc,
string url,
string mediaTagName,
byte[] imgData,
int & imgDataLen,
string messageExt),
string userOpenId);//3.3.0版本开始新增userOpenId参数
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene枚举 | 标识发送微信会话或者朋友圈。标识为朋友圈时,需要将userOpenId设置为空串 |
title | string | 标题;不能超过512字节 |
desc | string | 概要信息;不能超过1K |
url | string | 点击可打开的目标网址;长度不能超过10K |
mediaTagName | string | 此值会传到微信供统计用,点击 规范 可见详情 |
imgData | byte[] | 缩略图文件数据 |
imgDataLen | int | 缩略图数据长度;大小不能超过32K |
messageExt | string | 游戏自定义透传字段,详见结构化分享的特殊说明;不需要的话可以填写空串 |
userOpenId | string | 指定分享给特定的好友,可传空串;3.3.0版本开始新增该参数 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏
5)示例代码
byte[] imgData = imgData;
WGPlatform.Instance.WGSendToWeixinWithUrl(eWechatScene.WechatScene_Session,
"WX分享-title",
"WX分享-desc",
"http://www.qq.com",
"MSG_INVITE",
imgData,
imgData.Length,
"messageExt",
"");//3.3.0版本开始新增userOpenId参数
6)特殊说明
无
7)名词解释
无
1 概括说明
手Q富图分享可通过拉起手Q发送丰富的图片到QQ空间。可上传多张图片(<=9 张图片发表说说,>9 张为上传图片到相册),并支持gif图片。
2 注册回调
参见结构化分享的注册回调
3 手Q富图分享
1)功能描述
您可以调用WGSendToQQWithRichPhoto接口拉起手Q上传多张图片(包括gif动图)到QQ空间。
2)接口声明
void WGSendToQQWithRichPhoto(string summary, ArrayList imgFilePaths)
//3.3.0版本开始该接口变更如下
void WGSendToQQWithRichPhoto(string summary, ArrayList imgParams , string extraScene, string messageExt)
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
summary | string | 分享的正文;此参数目前无效 |
imgFilePaths | ArrayList | 3.3.0开始该参数废弃;分享的多张图片的集合;只支持本地图片,并需要手Q客户端版本大于等于5.9.5 |
imgParams | ArrayList | 3.3.0开始新增该参数;分享的多张图片的集合;只支持本地图片,并需要手Q客户端版本大于等于5.9.5;android需要填写图片路径:android_imagePath |
extraScene | string | 3.3.0开始新增该参数;区分分享的场景,用于异化小尾巴展示和feeds点击行为,需要与空间侧沟通定义,接口人:qqconnecthelper |
messageExt | string | 3.3.0开始新增该参数;游戏自定义字段,点击分享消息回到游戏时会透传回游戏,不需要的话可以填写空串 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏。
5)示例代码
string mySummary = "我的游戏精彩瞬间";
WGPlatform.Instance.WGSendToQQWithRichPhoto(mySummary, imageParams);
//3.3.0版本开始该接口变更如下
WGPlatform.Instance.WGSendToQQWithRichPhoto(mySummary, imageParams, "mdsk", "messagExt");
6)特殊说明
imgs集合中的本地图片应存放于手Q可访问的位置,如sdcard存储区(/storage/sdcard0)
7)名词解释
无
1 概括说明
手Q视频分享可通过拉起手Q分享本地视频到QQ空间。
2 注册回调
参见结构化分享的注册回调
3 手Q视频分享
1)功能描述
您可以调用WGSendToQQWithVideo接口通过拉起手Q将视频消息分享到QQ空间。
2)接口声明
void WGSendToQQWithVideo(string summary, string videoPath);
//3.3.9版本开始变更为:
void WGSendToQQWithVideo(string summary, VideoParams &videoParams, string extraScene, string messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
summary | string | 分享的正文;此参数目前无效 |
videoPath | string | 3.3.9版本开始该参数已废除;分享的视频路径;只支持本地视频,并需要手Q客户端版本大于等于5.9.5;不能超过1w字节 |
videoParams | VideoParams | 3.3.9版本开始新增该参数;封装Android、iOS的视频数据;其中,Android填被分享的文件路径,iOS填写视频二进制数据和相应的数据长度 |
extraScene | string | 3.3.9版本开始新增该参数;区分分享的场景,用于异化小尾巴展示和feeds点击行为,需与空间侧沟通定义,接口人:qqconnecthelper |
messageExt | string | 3.3.9版本开始新增该参数;游戏自定义字段,点击分享消息回到游戏时会透传回游戏,不需要的话可以填写空串 |
4)返回值
无,分享结果通过ShareEvent回调返回游戏。
5)示例代码
WGPlatform.Instance.WGSendToQQWithVideo("summary", videoParams, "1", "msdk");
6)特殊说明
Android:分享的文件路径应存放于手Q/可访问的位置,如sdcard存储区(/storage/sdcard0) iOS:填写视频二进制数据和相应的数据长度;iOS手Q客户端版本需要8.0.8及以上版本
7)名词解释
无
1 概括说明
ARK分享需要拉起手Q,可分享到会话;ARK分享需要提供AppId添加手Q白名单并与手Q沟通具体协议。
2 注册回调
参见结构化分享的注册回调
3 手Q ARK分享
1)功能描述
您可以调用WGSendToQQWithArk接口将ARK消息分享到手Q会话
2)接口声明
void WGSendToQQWithArk(eQQScene scene, string title, string desc, string url, string imgUrl, string jsonString, string tagname, string messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene枚举 | 标识发送手Q会话;scene暂时只支持qq会话,不支持空间 |
title | String | 标题;不能超过80字节 |
desc | String | 内容信息;不能超过130字节 |
url | String | 内容的跳转url,填游戏对应游戏中心详情页;建议不超过120字节,若超出会对比较长的url进行换短链处理 |
imgUrl | String | 分享消息缩略图Url;本地路径或者网络Url;图片大小不能超过1M |
jsonString | String | ARK分享jsonString(此处由业务侧与手q ARK开发时约定如何配置,msdk仅透传) |
tagname | String | 3.3.18版本开始新增该参数;此值会传到QQ供统计用 |
messageExt | String | 3.3.18版本开始新增该参数;游戏自定义透传字段,不需要的话可以填写空串 |
4)返回值
无,分享结果通过 WGPlatformObserver回调OnShareNotify函数返回游戏
5)示例代码
String title = "it's title";
String title ="it's desc";
String url = "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";
String imgUrl = "http://q.qlogo.cn/qqapp/100703379/C1BF66286792F24E166C9A5D27CFB519/100";
String jsonString = "{\"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\"}]}}}";
String tagname = "tagname";//3.3.18版本开始新增该参数
String messageExt = "messageExt";//3.3.18版本开始新增该参数
WGPlatform.Instance.WGSendToQQWithArk(eQQScene.QQScene_Session, title, desc, url, imgUrl, jsonString, tagname, messageExt);
6)特殊说明
注:为了能够正常使用该功能,作为开发者您需要知晓如下信息:
-
在QQ客户端8.0.0之前版本,当ARK分享失败时,会自动转化为结构化消息进行分享。传入参数:title,desc,url,imgUrl即为结构化消息的参数。当ARK分享成功时,title,desc,url,imgUrl没有作用。
-
从QQ客户端8.0.0版本开始,ARK参数必须填写正确,未填入不会成功分享ARK形态的消息,如错误则分享失败。
-
您需要在ARK官方管理端注册您的产品并制作提交您的ARK卡片素材,素材过审后的产品,才会开放相应权限。管理端地址:http://arkapp.oa.com:8080/app_light/dst/index.html#/ (该地址为内网访问,可由腾讯对应运营接口人协助处理,涉及到的卡片模版审核上架等具体可咨询ARK_Helper)
-
iOS的非ARK在TIM上的分享,需要在scheme中加入tim:路径如下:iOS的Info.plist中,Information Property List -> LSApplicationQueriesSchemes中添加tim
ARK客户端分享需要与手Q游戏中心沟通接入,详细流程可参照:http://km.oa.com/group/39817/articles/show/375226(该流程文档为内网访问,需要游戏对应腾讯运营接口人查看并联系游戏中心配置;游戏中心接口人:ARK_Helper)
7)名称解释
无
手Q游戏中心详情页
1 概括说明
手Q游戏中心详情页是手Q提供给精品游戏在游戏中心展示详情的页面,此页面提供下载,展示,跳转游戏等能力,使用前需要游戏运营经理在手Q游戏中心侧配置。 手Q分享的targetUrl参数若填写手Q游戏中心详情页链接,点击这条分享的消息时可跳到此游戏在游戏中心的详情页,随后自动拉起游戏。
游戏中心详情页链接示例:
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;
字段规范:
字段 | 说明 |
---|---|
appid | 游戏在手Q游戏中心的唯一标识ID |
_wv | 固定为 2164260896 |
_wwv | 固定为 448 |
autodownload | 可配置为1、0,不配置则默认为0;1为未下载游戏时启动下载,已下载游戏时拉起游戏;0则反之 |
autolaunch | 可配置为1、0,不配置则默认为0;1为拉起游戏;0则反之 |
autosubscribe | 可配置为1、0,不配置则默认为0;1为自动预约;0则反之 |
ADTAG | 标识不同的结构化消息来源,可能值有。 gameobj.msg_invite : 邀请 gameobj.msg_exceed : 超越 gameobj.msg_heart : 送心 gameobj.msg_pvp : 挑战 gameobj.msg_show : 炫耀 |
gamedata | 透传给游戏的数据 |
携带登录态:
若需要点击分享消息拉起游戏(或游戏中心启动游戏)时携带登录态,需要游戏运营经理在手Q游戏中心侧配置。
回传自定义参数:
游戏在手Q分享时自定义的参数可在另一位玩家点击分享消息拉起游戏时回传给游戏客户端。利于此能力游戏可实现邀请不在线玩家开黑等玩法。 手Q分享时targetUrl参数填写手Q游戏中心详情页链接,并在可选字段gamedata填写游戏自定义参数。若玩家点击此条分享消息,在拉起游戏时游戏客户端会收到唤起回调WakeupEven,wakeupRet透传了手Q游戏中心详情页链接中的gamedata字段。
自定义参数提取示例:
MsdkEvent.Instance.WakeupEvent += (WakeupRet ret) =>
{
// TODO GAME
string gamedata;
List<KVPair> pairs = ret.extInfo;
foreach(KVPair pair in pairs)
{
if (pair.key.Equals("gamedata"))
{
gamedata = pair.value;
}
}
}
其中WakeupEvent的注册参考异账号处理。
1)功能描述
可以允许用户通过内置浏览器打开微信游戏圈分享图片和文字到微信游戏圈。
2)接口声明
void WGShareToWXGameline(byte[] data, string gameExtra);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
data | byte[] | 分享的图片数据 |
gameExtra | string | 分享的游戏自定义参数,参数会附加到url后面 |
4)返回值
无回调。
5)示例代码
byte[] data = new byte[]{0} //图片数据
WGPlatform.Instance.WGShareToWXGameline(data,"参数");
6)特殊说明
图片数据的大小不能超过512K,超过大小的图片游戏需要自己压缩处理
7)名称解释
无
微信DeepLink
1)功能描述
微信DeepLink功能是指在游戏中调用WGOpenWeiXinDeeplink接口直接拉起微信并跳转至微信的游戏中心首页、详情页、游戏库以及自定义URL,DeepLink功能的开通和配置需请联系微信游戏中心。自MSDK2.12.0i版本开始提供此功能。
2)接口声明
void WGOpenWeiXinDeeplink(string link);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
link | string | 具体跳转deeplink,值可填写为INDEX、DETAIL、LIBRARY及自定义URL,各个值含义为: INDEX:跳转至微信游戏中心首页 DETAIL:跳转至微信游戏中心详情页 LIBRARY:跳转至微信游戏中心游戏库 自定义URL:跳转至微信Webview并打开URL(需要在微信游戏中心预先配置好此URL) |
4)返回值
无。
5)示例代码
WGPlatform.Instance.WGOpenWeiXinDeeplink("INDEX");
6)特殊说明
1.DeepLink功能需联系微信游戏中心开通和配置。
2.自定义URL需要在微信游戏中心先配置好且和调用接口传递的参数字符完全匹配,如在微信游戏中心配置了“http://www.qq.com/”,则接口link参数必须传“http://www.qq.com/”,若传“http://www.qq.com”则会失败。
7)名词解释
无
1 概括说明
小程序分享需要拉起手Q/微信,可分享到会话、QQ空间。
2 注册回调
参见结构化分享的注册回调
3 微信小程序分享
1)功能描述
微信侧基于小程序,提供新的分享特性能力。您可以调用WGSendToWXWithMiniApp接口将小程序分享到微信会话。
2)接口声明
void WGSendToWXWithMiniApp(eWechatScene scene,
string title,
string desc,
byte[] thumbImgData,
int thumbImgDataLen,
string webpageUrl,
string userName,
string path,
bool withShareTicket,
string messageAction),
string mediaTagName,//3.3.0版本开始新增mediaTagName参数
eMiniProgramType type,//3.3.0版本开始新增type参数
string userOpenId);//3.3.0版本开始新增userOpenId参数
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene | 分享场景(会话/朋友圈),目前只支持分享到会话Session |
title | string | 分享标题,长度不超过512字节 |
desc | string | 描述内容,长度不超过1K字节 |
thumbImgData | byte[] | 小程序缩略图, IOS: 不超过32K(旧版本使用),不超过128K(新版本) Android: 不超过32K(旧版本) |
thumbImgDataLen | int | 小程序缩略图长度 |
webpageUrl | string | 旧版本微信打开该小程序分享时,兼容跳转的普通页面url(可任意url,用于老版本兼容) |
userName | string | 小程序username,如gh_d43f693ca31f |
path | string | 小程序path,可通过该字段指定跳转小程序的某个页面(若不传,默认跳转首页)。对于小游戏,没有页面,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar";可拼接自定义参数,长度 100-200k,太长会导致跨进程传输失败;如:page/indexSelAddr/index?key1=value1&key2=value2 |
withShareTicket | bool | 是否带shareTicket转发(如果小程序页面要展示用户维度的数据,并且小程序可能分享到群,需要设置为YES) |
messageAction | string | (小程序分享暂时不可自定义小尾巴,可传空)分享到朋友圈时,游戏可以自定义朋友圈小尾巴行为,详情点击这里 |
mediaTagName | string | 3.3.0版本开始新增该参数 此值会传到微信供统计用,点击 规范 可见详情 |
type | eMiniProgramType | 指定小程序版本,分为 Release(0),Test(1),Preview(2)三种版本类型,与小程序版本对应;3.3.0版本开始新增该参数 |
userOpenId | string | 指定分享给特定的好友,可传空串;3.3.0版本开始新增该参数 |
4)返回值
通过设置的全局回调的OnShareNotify(ShareRet& shareRet)回调返回数据给游戏, shareRet.flag值表示返回状态, 可能值及说明如下:
eFlag_Succ: 分享成功
eFlag_Error: 分享失败
5)示例代码
WGPlatform.Instance.WGSendToWXWithMiniApp(eWechatScene.WechatScene_Session, title, desc, imgData, imgData.Length, targetUrl, miniapp_username, miniapp_path, true, messageAction, mediaTagName, eMiniProtype, userOpenId);
6)特殊说明
要求发起分享的App与小程序属于同一微信开放平台账号。
若微信客户端版本低于6.5.6,小程序类型分享将自动转成网页类型分享。开发者必须填写网页链接字段,确保低版本客户端能正常打开网页链接。
小程序的原始ID获取方法:登录小程序后台-设置-基本设置-账号信息。
7)名词解释
无
4 手Q小程序分享
1)功能描述
您可以调用WGSendToQQWithMiniApp接口将小程序消息分享到手Q会话和空间。
2)接口声明
void WGSendToQQWithMiniApp(eQQScene &scene, string title, string desc, string url, ImageParams imageParams, string miniProgramAppid, string miniProgramPath, eMiniProgramType type);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eQQScene | 标识发送手Q会话或者Qzone(空间需要手Q客户端4.5以上版本支持) |
title | string | 结构化消息的标题 |
desc | string | 结构化消息的概要信息 |
url | string | 兼容低版本的网页链接 |
imageParams | ImageParams | 此struct在android、ios上对应的字段不同。android需要填写图片路径:android_imagePath,ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen;3.3.32版本开始iOS支持传入图片URL |
miniProgramAppid | string | 游戏绑定的小程序appid |
miniProgramPath | string | 小程序页面的path;3.3.12版本开始可通过该字段透传自定义信息,在path后拼接key-value即可,如:miniProgramPath = pages/index/index?key1=value1&key2=value2 |
type | eMiniProgramType | 小程序类型,分为正式版(0)、体验版(1) |
4)返回值
无,分享结果通过 WGPlatformObserver 回调返回游戏
5)示例代码
WGPlatform.Instance.WGSendToQQWithMiniApp(eQQScene.QQScene_Session,
"sendtoqq title",
"sendtoqq summary",
"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",
imageParams,
"1109787314",
"pages/index/index",
ProgramType_Release);
6)特殊说明
imageParams参数android、ios上对应的字段不同。android需要填写图片路径:android_imagePath,ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen;3.3.32版本开始iOS支持传入图片URL。
3.3.12版本开始 miniProgramPath 参数可携带自定义透传信息,在path后拼接key-value即可,如: 原 miniProgramPath 传递参数 miniProgramPath = pages/index/index
携带自定义信息,如:组队信息携带后 miniProgramPath = pages/index/index?key1=value1&key2=value2
在异账号里接收自定义透传信息。WakeupEvent 的 wakeupRet.messageExt 即为玩家分享时传递的自定义信息,messageExt 为传递参数的 JSON 格式的字符串{"key1": "value1","key2": "value2"}。 当手Q 小程序拉起 App 时,如果不携带自定义信息,就没有 WakeupEvent 回调产生,WakeupEvent 的注册参考异账号处理。
{
// TODO GAME 在异账号这里接收自定义透传信息,如:手 Q组队信息
if (eFlag.eFlag_Succ == wakeupRet.flag || eFlag.eFlag.eFlag_NeedLogin == wakeupRet.flag {
var messageExt = wakeupRet.messageExt;
// messageExt 为传递参数的 JSON 格式的字符串{"key1": "value1","key2": "value2"}
}
};
7)名称解释
无
分享纯文字到QQ空间
1)功能描述
您可以调用WGSendToQQWithText接口将纯文字分享到QQ空间。3.3.0版本开始新增该接口
2)接口声明
void WGSendToQQWithText(string text, string extraScene, string messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
text | string | 需要分享的内容 |
extraScene | string | 区分分享的场景,用于异化小尾巴展示和feeds点击行为,需要与空间侧沟通定义,接口人:qqconnecthelper |
messageExt | string | 游戏自定义字段,点击分享消息回到游戏时会透传回游戏,不需要的话可以填写空串 |
4)返回值
无,分享结果通过OnShareNotify
回调返回游戏
5)示例代码
WGPlatform.Instance.WGSendToQQWithText("text", "1", "msdk");
6)特殊说明
无
7)名词解释
无
启动小程序
1 启动微信小程序
1)功能描述
您可以调用WGLaunchMiniApp接口启动微信小程序。3.3.0版本开始新增该接口;3.3.17版本开始回调从OnShareNotify
调整为OnWakeUpNotify
,透传参数统一放在wakeupRet.messageExt
字段中。
2)接口声明
void WGLaunchMiniApp(string userName,string path,eMiniProgramType type);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
userName | string | 填小程序原始id |
path | string | 拉起小程序页面的可带参路径,不填默认拉起小程序首页 |
type | eMiniProgramType | 指定小程序版本,分为 release(0),test(1),preview(2)三种版本类型 |
4)返回值
无
5)示例代码
WWGPlatform.Instance.WGLaunchMiniApp(("gh_e9f65127c15", "page/indexSelAddr/index", ProgramType_Release);
6)特殊说明
3.3.17版本开始回调从OnShareNotify
调整为OnWakeUpNotify
,透传参数统一放在wakeupRet.messageExt
字段中。
7)名词解释
无
2 启动手Q小程序
1)功能描述
您可以调用 WGLaunchQQMiniApp 接口启动手Q小程序,需要注册WGPlatformObserver
并通过OnWakeUpNotify
进行处理,透传参数统一放在wakeupRet.messageExt
字段中。3.3.21 版本开始新增该接口。
2)接口声明
void WGLaunchQQMiniApp(string miniProgramAppid,
string miniProgramPath,
eMiniProgramType type);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
miniProgramAppid | string | 必填,小程序的AppID |
miniProgramPath | string | 非必填,小程序的展示路径,不填展示默认小程序首页 |
type | eMiniProgramType | 非必填,小程序的类型,默认正式版(ProgramType_Release) |
4)返回值
无
5)示例代码
WWGPlatform.Instance.WGLaunchQQMiniApp("123456","xxx",ProgramType_Release);
6)特殊说明
iOS端需要在info.plist文件中的LSApplicationQueriesSchemes字段中添加mqqopensdklaunchminiapp,否则无法正常唤起QQ。
7)名词解释
无
拉起微信业务,分享到微信游戏(好玩)
1)功能描述
提供第三方通知微信启动内部浏览器,分享到微信游戏(好玩),打开指定业务的网页或小程序等功能。3.3.6版本开始新增该接口。
2)接口声明
void WGSendToWXWithOpenBusinessView(string businessType,string query,string extInfo,string extData);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
businessType | string | 业务内容,暂时使用 nativeShareToGameHaoWan(必填) |
query | string | 业务参数(选填,目前不使用) |
extInfo | string | 业务要传递的额外信息(Json格式)(是指传入和businessType有关的业务参数,是和业务约定的,比如打开小程序时,extInfo里面可以加参数指定打开小程序的版本;里面的gameinfo 中的 appid 和 appName 为必填字段,appid 传微信 appid;appName 传游戏名,不做限制可填任意值。格式参考:{"appid":"YOUR_WECAHT_APPID","appName":"MSDKDemo"}) |
extData | string | 安卓可填空;iOS专用,用来传递视频(选填;和业务相关的二进制数据,比如businessType是游戏视频分享到微信好玩,extData就传入视频的二进制数据) |
4)返回值
无
5)示例代码
//Android 本地视频
WGPlatform.Instance.WGSendToWXWithOpenBusinessView("nativeShareToGameHaoWan", "", "{\"videoPath\":\"/storage/emulated/0/test_video.mp4\", \"needEdit\":1, \"gameInfo\":{\"battleId\":\"game12345\",\"appid\":\"YOUR_WECAHT_APPID\",\"appName\":\"MSDKDemo\"}}", "");
//iOS 本地视频
WGPlatform.Instance.WGSendToWXWithOpenBusinessView("nativeShareToGameHaoWan", "", "{\"thumbUrl\":\"http://shp.qpic.cn/record_smoba/0/53209e869e71dc351129059fbb5f748dT1552892652598430/\" , \"needEdit\":1, \"gameInfo\":{\"battleId\":\"game12345\",\"appid\":\"YOUR_WECAHT_APPID\",\"appName\":\"MSDKDemo\"}}", [testVideoPath UTF8String]);
//云视频
WGPlatform.Instance.WGSendToWXWithOpenBusinessView("nativeShareToGameHaoWan", "", "{\"videoUrl\":\"https://qt.qq.com/php_cgi/cod_video/php/get_video_url.php?vid=2a495e10fc03426fb8e4def77fc68a57&game_id=1007039\", \"thumbUrl\":\"http://shp.qpic.cn/record_smoba/0/53209e869e71dc351129059fbb5f748dT1552892652598430/\" , \"needEdit\":1, \"gameInfo\":{\"battleId\":\"game12345\",\"appid\":\"YOUR_WECAHT_APPID\",\"appName\":\"MSDKDemo\"}}", "");
分享到微信状态(跳转网页)
1)功能描述
分享到微信状态,成功之后,状态相关信息将显示在微信 -> 我的个人头像下面,点击状态下面应用名称将自动跳转到指定页面。3.3.19 版本开始新增该接口,该版本支持分享图片到微信状态。
2)接口声明
void WGSendToWXStateWithPhoto(string stateId,
string stateTitle,
ImageParams imageParams,
string jumpUrl);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
stateId | string | 状态ID,选填,不同的状态ID会显示不同的Icon |
stateTitle | string | 状态标题,选填,限制 32 个字符以内 |
imageParams | ImageParams | 图片信息,必填,图片比例为9:16;此struct在android、ios上对应的字段不同。android需要填写图片路径:android_imagePath,ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen |
jumpUrl | string | 跳转URL,必填,点击来源小尾巴后跳转的页面url,游戏先支持跳到“微信游戏圈”页面 |
4)返回值
无
5)示例代码
string stateId = "1019";
string stateTitle = "stateTitle";
string jumpUrl = "jumpUrl";
WGPlatform.Instance.WGSendToWXStateWithPhoto(stateId,stateTitle,imageParams,jumpUrl);
6)特殊说明
- 以上为分享图片到微信状态示例,其它语言接口类似,对于游戏,stateId可以填写1019,stateTitle设置后将作为编辑页默认值,jumpUrl为游戏圈地址,跳转到微信之后,除了jumpUrl,其它均能够自主修改。
- 图片建议9:16的尺寸
- jumpUrl请注意填写游戏圈地址
- 如需接入,需联系MSDK助手对接。
7)名词解释
无
分享到微信状态(跳转小程序)
1)功能描述
分享到微信状态,成功之后,状态相关信息将显示在微信 -> 我的个人头像下面,点击状态下面的小程序名称将自动跳转到指定小程序页面。3.3.29 版本开始新增该接口,该版本支持分享图片到微信状态。
2)接口声明
void WGSendToWXStateWithPhotoOpenMiniApp(string stateId,
string stateTitle,
ImageParams imageParams,
string userName,
string path,
eMiniProgramType type);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
stateId | string | 状态ID,选填,不同的状态ID会显示不同的icon,对于游戏可填1019 |
stateTitle | string | 状态标题,选填,限制32个字符以内 |
imageParams | ImageParams | 图片信息,必填,图片比例为9:16;此struct在android、ios上对应的字段不同。android需要填写图片路径:android_imagePath,ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen |
userName | string | 必填,需要跳转的小程序username |
path | string | 小程序path,可通过该字段指定跳转小程序的某个页面,若不填则默认跳转首页 |
type | eMiniProgramType | 指定小程序版本,分为 Release(0),Test(1),Preview(2)三种版本类型,与小程序版本对应 |
4)返回值
无
5)示例代码
string stateId = "1019;
string stateTitle = "test";
ImageParams imgParams = new ImageParams();
string userName = "YOUR_MINI_APP_ID";
string path = "YOUR_MINI_APP_PATH";
#if UNITY_ANDROID
imgParams.android_imagePath = androidSdcard + "/test.jpg"; ;
#elif UNITY_IPHONE || UNITY_IOS
imgParams.ios_imageData = imgData;
imgParams.ios_imageDataLen = imgData.Length;
#endif
eMiniProgramType eMiniProtype = eMiniProgramType.ProgramType_Release;
WGSendToWXStateWithPhotoOpenMiniApp(stateId, stateTitle, imageParams, userName, path, type);
6)特殊说明
- 以上为分享图片到微信状态示例,其它语言接口类似,对于游戏,stateId可以填写1019,stateTitle设置后将作为编辑页默认值。
- 图片建议9:16的尺寸
- 如需接入,需联系MSDK助手对接。
7)名词解释
无
1)功能描述
一键分享用户在游戏内生成的视频到微信视频号。3.3.19 版本开始新增该接口。自2024年起微信正式下架并停止维护该功能。因此后续新产品将不再支持此功能的接入,同时微信侧建议已接入的历史产品对该能力进行下线处理。
2)接口声明
void WGSendToWXChannelShareVideo(VideoParams videoParams, string messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
videoParams | VideoParams | 视频信息,必填;此struct在Android和iOS上对应的字段不同,Android需要填写视频路径:android_videoPath,iOS需要填写系统相册中视频标识符PHAsset localIdentifier:ios_videoLocalIdentifier。 |
messageExt | string | 拓展字段,选填,携带额外信息,当前版本暂未使⽤ |
4)返回值
无
5)示例代码
string messageExt = "";
WGPlatform.Instance.WGSendToWXChannelShareVideo(videoParams,messageExt);
6)特殊说明
- 如需接入,需联系MSDK助手对接。
- 视频格式目前仅支持MP4,时长不超过30分钟,大小不超过450M,宽高比在1:3 - 3:1之间。
- 涉及到的struct参数VideoParams在Android和iOS上对应的字段不同,Android需要填写视频路径:android_videoPath,iOS需要填写系统相册中视频标识符PHAsset localIdentifier:ios_videoLocalIdentifier。
7)名词解释
无
微信视频号直播
1)功能描述
MSDK 封装视频号直播接口,使用 WGSendToWXChannelStartLive 接口,入参为业务所传 Json 串 channelLiveJosn 及扩展字段 messageExt。3.3.26 版本开始新增该接口。
2)接口声明
void WGSendToWXChannelStartLive(string channelLiveJosn, string messageExt);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
channelLiveJosn | string | 业务发起视频号直播所需的 Json 字符串,必填 |
messageExt | string | 扩展字段,选填,当前版本暂未使用 |
4)示例代码
channelLiveJosn 为业务发起视频号直播所需的 Json 字符串。具体请参照接口文档:https://doc.weixin.qq.com/doc/w3_AJIAmAbDAK4LXcbbMdHT6OnjGLNvf?scode=AJEAIQdfAAoCcEODzyAJIAmAbDAK4。
string channelLiveJosn = "{\"liveJsonInfo\":\"{\\\"extraAntiInfo\\\":\\\"bQ9Xn5XOTvUmrcjt3%2FOWSs4HxJRt5Nz%2FY3peUMSqoufJIVLJAWZs4nYZ9gM3SoKH\\\",\\\"routeScene\\\":3,\\\"liveEntryScene\\\":1,\\\"appid\\\":\\\"wxcde873f99466f74a\\\"}\",\"openID\":\"oGRTijm8K4JWxwe67BjsAF1t6Y7o\"}";
string messageExt = "MSDK WeChat Channel Start Live";
WGPlatform.Instance.WGSendToWXChannelStartLive(channelLiveJosn, messageExt);
返回结果:
成功跳转到微信,并拉起视频号直播页,成功时 MSDK 无回调。
只有当 opensdk 异常时会通过 MsdkEvent.Instance.ShareEvent 返回结果
MsdkEvent.Instance.ShareEvent += (ShareRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 分享成功
}
else
{
// 分享失败处理
}
};
5)特殊说明
- 当所传的 openID 为空时,默认设置空串
- 具体使用方法联系MSDK助手对接
1)功能描述
MSDK 封装手Q小世界分享接口,使用 WGSendToQQWithCommonShare 接口,入参为业务所传 servieID 及扩展参数 extraJson。3.3.26 版本开始新增该接口。
2)接口声明
void WGSendToQQWithCommonShare(string serviceID, string extraJson);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
serviceID | string | 服务 id,每个对接的手Q业务都需要找手Q互联分配服务 id |
extraJson | string | 可扩展参数,该数据会透传到手Q,传入内容与手Q侧约定 |
4)示例代码
string serviceID = "3004";
string extraJson = "{\"local_video_path\":\"\\/storage\\/emulated\\/0\\/Android\\/data\\/com.example.wegame\\/files\\/video.mp4\"}";
WGPlatform.Instance.WGSendToQQWithCommonShare(serviceID, extraJson);
通过分享回调,接收返回结果:
MsdkEvent.Instance.ShareEvent += (ShareRet ret) =>
{
Debug.Log(ret.ToString());
message = ret.ToString();
if (ret.flag == eFlag.eFlag_Succ)
{
// 分享成功
}
else
{
// 分享失败处理
}
};
5)特殊说明
- 分配服务 id 联系MSDK助手对接
微信原生分享
1)功能描述
MSDK 封装微信原生分享接口,使用 WGSendToWXNativeGamePage 接口,可分享到微信会话及朋友圈。3.3.28 版本开始新增该接口。
2)接口声明
void WGSendToWXNativeGamePage(eWechatScene scene,
string title,
string desc,
string mediaTagName,
byte[] thumbImgData,
int thumbImgDataLen,
bool isVideo,
int videoDuration,
string shareData,
string messageExt,
string messageAction,
string userOpenId);//3.3.30版本开始新增userOpenId参数
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
scene | eWechatScene枚举 | 标识发送微信会话或者朋友圈 |
title | string | 标题;不能超过512字节 |
desc | string | 概要信息;不能超过1K |
mediaTagName | string | 此值会传到微信供统计用 |
thumbImgData | byte[] | 缩略图文件数据 |
thumbImgDataLen | int | 缩略图数据长度;大小不能超过256K |
isVideo | bool | 是否是视频类型 |
videoDuration | int | 视频时长,单位秒(视频类型时,必要) |
shareData | string | 透传字段,不超过100K |
messageExt | string | 游戏自定义透传字段,不需要的话可以填写空串 |
messageAction | string | 保留字段;可以填写空串 |
userOpenId | string | 指定分享给特定的好友;3.3.30 版本开始新增该参数 微信会话场景:若业务不传递 userOpenId(空串),默认拉起好友列表;若指定好友 openid,则拉起对应好友进行分享 微信朋友圈场景:userOpenId 传递空串 |
4)返回值
无,分享结果通过 WGPlatformObserver 回调 OnShareNotify 函数返回游戏。
5)示例代码
tring title = "SendToWXNativeGamePage";
string desc = "原生分享";
string mediaTagName = "MSG_INVITE";
byte[] thumbImgData = thumbImgData;
int thumbImgDataLen = thumbImgData.Length;
string messageExt = "";
string messageAction = "";
WGPlatform.Instance.WGSendToWXNativeGamePage(eWechatScene.WechatScene_Session, title, desc, mediaTagName, thumbImgData, thumbImgDataLen, true, videoDuration, shareData, messageExt, messageAction, "");
6)注意事项
- 使用此接口时,请阅读微信原生分享相关文档:https://iwiki.woa.com/p/4008426990
- 原生分享依赖微信客户端版本,需使用 Android 8.0.33、iOS 8.0.34 及以上版本微信客户端;指定分享给特定好友时,iOS 需使用 8.0.43(暂定)及以上版本微信客户端,Android 在 8.0.33 版本微信客户端已支持指定分享给特定好友