# 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
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=***×tamp=**&appId=***&openId=***
&algorithm=v1&msdkEncodeParam=***&version=1.6.2i&encode=2
1
2
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
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)