腾讯小游戏(微信平台)

腾讯小游戏服务号

二维码

调试

微信平台的腾讯小游戏依赖微信的登录信息,直接在PC上打开链接会出现由于无法获取登录信息而访问失败。

  1. 在PC上使用Chrome等浏览器进行调试,可以访问https://应用ID.urlshare.cn/wechat-debug,并根据引导使用微信扫一扫功能扫描页面上的二维码并授权,PC上的浏览器便会获取登录信息并打开游戏页面。
  2. 在微信中进行调试,可以访问https://应用ID.urlshare.cn/?dw=1,以调试链接访问游戏。

接入流程

公告

  1. 新增接口字段OPEN_DATA.isFollowingAccount,用于获取用户是否关注“腾讯小游戏”服务号。新增接口window.showQRDialog,用于向用户展示“腾讯小游戏”服务号二维码。
  2. 腾讯云优惠说明

新应用接入

  • 如果您的应用尚未接入过手机QQ以及手机QQ空间小游戏平台,可以先参考接入文档,了解空间应用接入流程。
  • 如果您的应用已经接入过手机QQ或手机QQ空间小游戏平台,请参考下面的列表对应用进行调整。

调整内容:

  1. 应用必须使用HTTPS协议访问。如果您的应用不支持通过HTTPS协议访问,可以参考腾讯云提供的文章:《腾讯云实现全站 Https 方案》对应用进行改造。
  2. 从微信平台访问的请求,在调用OpenAPI时必须使用正确的pf值。如果您不确定使用pf的方法是否正确,可以参考:《如何使用pf值》

基础能力

登录票据

您可以通过两种方式获取用户登录票据,并使用空间·玩吧-后台接口验证用户登录票据。

  1. 用户在访问appid.urlshare.cn时,小游戏服务器请求游戏开发商所提供的游戏页面。在请求的GET参数中,会携带用户的登录票据。详见代理规则中的GET参数说明。
  2. 用户在前端页面中,可以通过如下两种方式获取用户登录票据。相较而言,我们推荐您异步方式获取用户登录票据

异步方式获取用户登录票据

window.getOpenKey(function(d){
    alert(JSON.stringify(d));
});

同步方式获取用户登录票据

window.OPEN_DATA.openid;
window.OPEN_DATA.openkey;

用户的登录票据中,OpenKey的有效期为2小时。在OpenKey的有效期内使用空间·玩吧-后台接口中提供的相关接口,或使用异步方式获取用户登录票据,OpenKey的有效期会向后顺延。

全局变量

  • window.OPEN_DATA -- Object 登录票据注入变量
    • platform -- Number 平台,2-IOS1-安卓
    • pf -- String 来源,用于openapi
    • appid -- String 第三方appid
    • openid -- String 第三方登录票据openid
    • openkey -- String 第三方登录票据openkey
    • meybeQua -- String 原始qua字符串
    • via -- String 渠道标识,用于统计,透传即可
    • appurl -- String 当前页面对应的原始地址
    • appicon -- String 图标,100x100
    • shareurl -- String 用于设置分享地址
    • jumpurl -- String 用于设置快捷方式
    • isFollowingAccount -- Boolean 标记用户是否关注腾讯小游戏服务号
    • qua -- Object qua解析后的对象
      • os -- String 操作系统。AND-安卓,IPH-IOS
      • app -- String 表明当前客户端是手机QQ、手机QQ空间或者是微信。对应的值分别为:SQ-手机QQ,QZ-手机QQ空间,WX-微信
      • version -- String 版本号,前三位
      • subVersion -- String 版本号,第四位
      • appType -- String 渠道号

在调用mqq.ui.shareMessage接口时,share_url参数应该直接使用window.OPEN_DATA.shareurl变量中的值。这个值会根据当前页面打开的URL变化而变化。开发者可以在这个变量后增加一些自定义参数用于实现某些特定的功能,但需要特别注意以下两点:

  1. share_url参数的长度如果超过80个字符,在分享到手机QQ或手机QQ空间时会无法打开。
  2. 不得自己构建字符串传入share_url参数中,亦不得将window.OPEN_DATA.shareurl变量中的值(尤其是参数)删除,否则在分享后或后续平台调整时会无法打开游戏链接。

代理规则

  1. GET参数
    • platform -- Number 平台,2-IOS1-安卓
    • openid -- String 第三方登录票据openid
    • openkey -- String 第三方登录票据openkey
    • app -- String SQ-手QQZ-手空
    • qua -- String qua原始字符串
    • via -- String 渠道标识,透传,业务逻辑判断不要依赖via
  2. 映射规则
    • root -- 根目录, 对应管理端配置的url所在目录
    • home -- 默认首页,对应管理端配置的url
    • 子页面 -- root的子目录,不可跨越root目录,
    • 关于cookie -- 首屏通过header设置cookie无效,可页面打开后设置cookie
    • 302跟随 -- 支持以下域名,不会返回302给用户
      • *.myqcloud.com
      • *.qqopenapp.com
      • *.qzoneapp.com
      • *.twsapp.com
      • 拥有相同的父域名

JSAPI

与手机QQ和手机QQ空间平台的JSAPI能力相比,在微信中仅提供mqq.ui.shareMessage接口。后续接口如有变更,会在本文中及时更新。

如果您的应用已经接入手机QQ以及手机QQ平台,并且使用了微信平台上不支持的JSAPI,不会触发JavaScript运行时错误。相关的功能也不会生效。

名称 兼容性 描述
mqq.ui.shareMessage 注册分享回调接口,同时定制分享信息
mqq.ui.setOnShareHandler setOnShareHandler方法虽然在微信平台中也支持,但是由于微信和QQ的分享机制不太一致,支持逻辑也不一样,具体查看接口文档了解。
window.showQRDialog 在页面中显示“腾讯小游戏”服务号二维码。用户只有在关注了“腾讯小游戏”服务号以后才能接收到通过send_gamebar_msg接口发送的消息

与手机QQ和手机QQ空间不同,微信平台不提供直接呼起分享界面(包括好友列表、朋友圈等),在调用mqq.ui.shareMessage后,必须由用户主动触发分享功能。因此在将应用从手机QQ或手机QQ空间平台迁移至微信平台上时,需要在进入游戏以后先调用一次mqq.ui.shareMessage接口设置分享文案,以免用户在进行分享时因为没有默认文案信息而导致分享出去的内容不符合预期。

微信平台下,每调用一次mqq.ui.shareMessage,只能设置一种类型的分享。例如:调用mqq.ui.shareMessageshare_type的值传0。那么在微信里只有分享到QQ好友会有分享文案,分享到QQ空间、微信好友、微信朋友圈都不会有分享文案。如果要让4个渠道的分享都有分享文案,需要调用四次,并且每次设置不同的share_type参数。

注意:在微信平台上严禁任何形式的诱导分享。如果应用中有明确信息引导用户分享并获得收益,务必在上线前移除相关功能或对内容进行调整。一旦发现应用中有任何形式的诱导分享,应用将有可能被下架。

支付

与手机QQ和手机QQ空间平台的支付功能相比,前端在调用window.popPayTips时没有任何变化。后台在调用后台接口时,需要特别注意参数中的pf参数。

名称 兼容性 描述
window.popPayTips 唤起玩吧支付

后台接口

与手机QQ和手机QQ空间平台的后台接口能力相比,在微信中提供仅提供如下接口。后续接口如有变更,会在本文中及时更新。