QQ游戏 开放平台

欢迎来到QQ游戏开放平台 管理中心 | 注册 | 开发者论坛
后台接口OpenAPI调用说明

1.1请求url说明

//[域名/IP]/[api_name]
域名和IP的说明:正式环境下使用域名:openapi.tencentyun.com。测试环境下使用IP:119.147.19.43。
注:测试IP只能用于应用测试环境,应用部署前必须确保已经将程序中的测试IP换成了域名,才能将应用上线到正式环境。
请求URL的示例:
正式环境下访问OpenAPI V3.0: //openapi.tencentyun.com/v3/user/get_info
测试环境下访问OpenAPI V3.0: //119.147.19.43/v3/user/get_info

1.2超时时间说明

OpenAPI一般会在50ms以内返回数据,OpenAPI接口机设置的最长超时时间为3s。 开发者可以根据上述说明自行设置OpenAPI调用的超时时间。

1.3公共参数

参数名称 是否必须 参数含义 描述
openid 必须 string 与APP通信的用户key。从平台跳转到应用时会调用应用的CanvasURL,平台会在CanvasURL后带上本参数。由平台直接传给应用,应用原样传给平台即可。
根据APPID以及QQ号码生成,即不同的appid下,同一个QQ号生成的OpenID是不一样的。
注:
(1)如果不知道如何解析CanvasURL以获取OpenID和Openkey,点击这里
(2)如果解析CanvasURL时获取不到OpenID和Openkey等参数,点击这里
openkey 必须 string session key。从平台跳转到应用时会调用应用的CanvasURL,平台会在CanvasURL后带上本参数。由平台直接传给应用,应用原样传给平台即可。
注:
(1)如果不知道如何解析CanvasURL以获取OpenID和Openkey,点击这里
(2)如果解析CanvasURL时获取不到OpenID和Openkey等参数,点击这里
(3)注意同一个用户如果在不同时间打开多个应用页面,页面返回的openkey是不一样的,这些openkey在各自的页面都可用。但是不要在当前页面使用另1个页面的openkey,否则会出错;
(4)Openkey长度为不固定的字符串,不能为空。建议开发者不要检查openkey的长度,也不要在后台存储openkey,否则可能会导致用户无法登录;
(5)openkey过期时间为两小时,需要用v3/user/is_login接口续期。
appid 必须 unsigned int 应用的唯一ID。可以通过appid查找APP基本信息。
sig 必须 string 请求串的签名,以appkey作为密钥,具体签名算法见腾讯开放平台第三方应用签名参数sig的说明
pf 必须 string 应用的来源平台。从平台跳转到应用时会调用应用的CanvasURL,平台会在CanvasURL后带上本参数。由平台直接传给应用,应用原样传给平台即可。
注:
(1)由平台直接传给应用,应用原样传给平台即可。请不要应用手动构造pf值,也不需要对平台传递的pf进行有效性校验,以避免应用上线多平台时需要付出额外的修改成本,导致调用某些接口时由于参数需要根据pf值生成导致传入参数不合法。
(2)如果不知道如何解析CanvasURL以获取pf,点击这里
(3)如果解析CanvasURL时获取不到pf,点击这里
(4)建议应用不要在程序中对pf进行转换(例如将字符型转换为int型),避免对于值不固定的pf(例如漫游或游戏联盟的pf)支持造成障碍。
format string 定义API返回的数据格式。
取值说明:为xml时表示返回的格式是xml;为json时表示返回的格式是json。
注意:json、xml为小写,否则将不识别。format不传或非xml,则返回json格式数据。
userip string 用户的IP。
应用服务器得到的remote_ip和x_forward_ip是10.x.x.x,由上一层腾讯路由转发。
http请求的头里有一个QVia(HTTP_QVIA值),是个40个字节的串,前8个字节是IP,后面的是校验,将字节串前8个字节,分成4段,分别由16进制转成10进制,即可得到用户最终IP。
如果应用(例如新接入的应用、已经接入TGW的应用、non-hosting应用)获取不到QVia的值,可以直接通过标准http协议获取用户IP。
charset string 指定请求及响应的字符集, 可选取值为gbk和utf-8, 默认值为gbk, 其他非法取值也认为是gbk

1.4公共返回码

ret = 0: 正确返回,其他情况为异常。
详见:OpenAPI V3.0 返回码

1.5错误返回示例

数据结构如下:
{
"ret":1000002,
"msg":"您提交的参数不正确,请重新操作!",
"uin":0
}
不同的异常,错误码不同。