# MSDK方案(游戏内)

# 适用场景

适用于游戏内MSDK打开的页面

# 创建绑定实例

 var instance = new LivelinkManager()
1

# 示例

var instance = new LivelinkManager();
// 加密版本(推荐使用)
instance.init({
  msdkEncodeParam: 'xxx', // msdk加密串
  timestamp: 123, // msdk生成的timestamp
  appId: 123, // 游戏appid
  algorithm: 'v1', // 加密算法标识,值为v1/v2
  version: '1.6.2a', // msdk客户端版本号
  sig: 'xxx', // msdk的签名
  openId: 'xxx', // msdk授权返回的gameOpenid
  encode: 2, // msdk编码参数,如2
  msdkVersion: 'v3', // msdk版本,值为v3/v5
  loginType: 'msdk', // 登录方式 
  actId: 475, // 活动ID
  gameId: 'lol', // 游戏ID
  areaId: 123, // 大区ID(渠道),没有则不传
  platId: 123, // 终端操作系统ID,没有则不传
  partition: 123, // 子区ID,没有则不传
  roleId: '123', // 角色ID
  channelId:2,  //v5的channelid
  V5gameId:16283,   //v5的gameid
  os:1,  //v5的os 
  source:0, // v5的来源 不传默认0
  closeAfterBind: true, // 绑定成功后是否关闭弹窗
  gameAuthScene: '{场景ID}', // 授权场景值
  onBoundSuccess(data) { // 绑定账号成功的回调
    console.log('onBoundSuccess', data);
  },
  onBoundError(errData) { // 绑定账号失败的回调
    console.log('onBoundError', errData);
  },
  initialedEvent(data) { // 初始化成功的回调
    console.log('initialedEvent', data);
  },
});

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

# init传参详解

# 1.采用msdk加密

msdk加密环境下,假设浏览器拉起URL:http://apps.game.qq.com/ams/gac/index.html, 实际截包会看到访问的URL如下:

http://apps.game.qq.com/ams/gac/index.html?sig=***&timestamp=**&appId=***&openId=***
&algorithm=v1&msdkEncodeParam=***&version=1.6.2i&encode=2
1
2

可以看到与登录态相关的初始化参数都可以在url的querystring里获得,推荐使用sdk提供的getParamsFromQueryString方法读取

参数 类型 是否必填 描述
msdkEncodeParam string msdk加密串,内含openid,access_token等信息
timestamp int 是(解密用) msdk生成的timestamp
appId int 是(解密用) 游戏appid
algorithm string 是(解密用) 加密算法标识,值为v1或者v2
version string 是(解密用) msdk客户端版本号,例如:1.6.2a
sig string 是(解密用) msdk的签名
openId string 是(解密用) msdk授权返回的gameOpenid
encode int 是(解密用) 编码参数,如2
msdkVersion string msdk版本,值为v3或v5
loginType string msdk,用来标识接入sdk的登录方式
actId int 工具化平台 (opens new window)申请的活动ID
gameId string 游戏ID, 例如lol, cf ...
areaId int 大区ID(渠道),没有则不传
platId int 终端操作系统ID,没有则不传
partition int 子区ID,没有则不传
roleId string 角色ID
channelId int 是 (v5) v5版渠道id
V5gameId int 是 (v5) v5版gameId
os int 是 (v5) v5版系统id
source int 否 (v5) v5版来源id (不传默认是0)
onBoundSuccess function 账号绑定成功之后的回调,返回当前用户的状态信息data
onBoundError function 账号绑定失败之后的回调,返回用户绑定失败后的错误信息errData
initialedEvent function 初始化完成之后的回调,返回当前用户的状态信息data,或者返回初始化失败的错误信息errData
closeAfterBind boolean 绑定完成后是否需要关闭sdk弹窗,不传默认为true,关闭弹窗
gameAuthScene string 绑定所需授权与活动配置授权不一致时,同时传入活动id和授权场景值,优先使用授权场景值下的授权配置,参数格式为act_{活动ID}、custom_{自定义授权ID}、gamedata_v1_{数据场景V1版本ID}、gamedata_v2_{数据场景V2版本ID}

注:手游的大区 有 areaId platId partition 3级组成。第2,3级,是有可能没有的。这个要与IDIP保持一致。

# 回调详解

1.onBoundSuccess / initialedEvent回调返回的data,包含的字段如下

{
          //当前活动相关信息
  	      "act": {
	            "livePlatId": "xxx",
	            "livePlatName": "xxx",
              "gameId": "cfm",
              "gameName":"穿越火线"
	        },
  				//当前游戏账号
	        "currAccount": {
	            "type": "wx",
	            "gameOpenId": "L3NjMTNRcEc1eldCK3VLdHVJM0I3V2hkRGxvcmMwRHlHM3V0dElPYUpocz0=",
	            "nickName": "太白Mo",
	            "headImg": "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83epZ1G0Eic2dj5xyciboLPHe9Wdz418krwhXkwwlVR4WRPCV7pBKtEHYfLBnaJpiaAtPA9b4jdmlhWqeg/132"
	        },
  				//当前游戏角色
	        "currRole": {
	            "roleId": "oMtbqt-Anyc5K7td9h1k0QN4hUzY",
	            "roleName": "太白Mo",
	            "area": "1",
	            "areaName": "微信",
	            "platId": "1",
	            "platName": "安卓(android)",
	            "partition": "0",
	            "partitionName": "",
	            "gameOpenId": null
	        },
					//当前绑定的平台账号(未绑定则为null)
	        "platAccount" : {
	            "uid": "123111213",
	            "nickName": "平台昵称",
	            "headImg": "http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83epZ1G0Eic2dj5xyciboLPHe",
	            "livePlatId": "tencent"
	        }
	    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

2.onBoundError回调返回的errData,包含的字段如下

{ "msg": "绑定账号失败", "code": 10002 }
1

# 工具函数

参见SDK工具函数

# 原型方法

参见SDK原型方法

# SDK调试

调试地址: https://livelink.qq.com/sdk/livelink-manager-sdk/index.html (opens new window)

lastUpdate: 2/2/2023, 4:56:08 PM