openId是平台基于当前用户账号、当前小游戏信息、当前客户端等多个信息生成的用户唯一标识,开发者可使用openId关联各自的用户帐号体系。同个用户不同游戏的openId不同。
前置条件:开发者需要先进行域名白名单的配置,纯前端的游戏无法获取openid,具体详见:开发小游戏(服务端开发看)。
获取openId的方式:openId可通过外部服务调用的上下文获取,接口从请求的url的param中获取openid;目前平台只支持用上述方式获取openid,不支持在服务端调用TOP接口获取。
前端可以通过请求自己的服务端时,由服务端将获取到的openId手动回塞,返回给前端。一般不建议前端获取openId。
async function test() { let result try { result = await cloud.application.httpRequest({ //不需要完整域名,只需要接口访问路径即可; 该路径对应的服务端逻辑,需要在返回的response中塞入openId 'path': '/welcome', 'method': 'POST', //POST请求需要指定下请求格式,只支持application/json。 如:"content-type":"application/json;charset=UTF-8" 'headers': { "Content-Type":"application/json;charset=UTF-8"}, 'params': {"name":"hanruo","action":"test"}, 'body': { "xftest":"hhh", "id":"1234"}, 'exts': { //cloudAppId为域名白名单配置后获取,在配置处查看具体参数 "cloudAppId": "xxxx", // 单位ms "timeout": 4000, //调用需要填写该字段,包括协议头以及端口号(可省略),支持http、https "domain":"https://www.taobao.com" } }); } catch (error) { console.log(error) } --------- 执行云请求 test().then(res => { console.log("openId",res) }
注意:如果你要在cocos中使用空应用的话,需要参考《Cocos/Laya引擎适配》文档的FAQ关于空应用的内容。
cloudAppId 获取位置如下: