# 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 string 否 是
platId string 是 终端操作系统ID,没有则不传
partition string 是 子区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}
forcePlatAuth boolean 否 默认为false。如果填入true,则强制进行平台账号的授权登录

注:手游的大区 有 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: 6/20/2025, 4:17:09 PM