-
Creator 版本:2.3.4
-
目标平台: 微信开发者工具
-
开发目标:在cocos云开发环境下,获得微信登陆者的相关信息,包括OPENID等,实现微信用户个人存档功能。
-
准备工作:已充分阅读cocos官方腾讯云开发sample工程,通过实践能够调动云函数和数据库的读写。
-
经验水平:个人以前从未从事过网页开发微信开发等前端开发,微信小程序开发经验0!
-
问题1描述:在微信开发者工具中,启用云开发,能够顺利获得用户信息(OPENID),在cocos云开发下无法获得,通过各种尝试和翻阅资料,终于发现是账号关联权限问题,在微信开发者工具下的云开发,可以通过绑定小程序APP方法,而通过cocos云开发注册的腾讯云账号,无法在账号信息界面关联绑定小程序APP,只能绑定微信。后来经过不断翻查和偶然因素,发现可以在云开发环境里的“环境"—>"登陆授权"里绑定小程序APP ID!!!
-
问题2描述:解决问题1后,腾讯官方文档找了好几种版本尝试获得用户OPENID,导入到微信开发者工具后,发现自己的云函数没有了!翻看官方自己的云函数代码,发现需要手动指认cocos构建后的项目的云函数,位置在“src->assets->cloud”下面,手动指认后,解决了问题2
-
问题3描述:解决问题2后,微信开发者工具报新的红字:
VM4556:1 MiniProgramError
module “src/assets/cloud/cloudConfig.js” is not defined
Error: module “src/assets/cloud/cloudConfig.js” is not defined
at require (http://127.0.0.1:33141/game/dev/WAGame.js96818)
at http://127.0.0.1:33141/game/dev/WAGame.js96439
at srcAssetsCloudCloudConfigJs (http://127.0.0.1:33141/game/ccRequire.js:6:5)
at window.cocos_require (http://127.0.0.1:33141/game/ccRequire.js:21:11)
at y.js (http://127.0.0.1:33141/game/adapter-min.js:351:9)
at y.184.y.handle (http://127.0.0.1:33141/game/cocos/cocos2d-js-min.js:1:622614)
at a (http://127.0.0.1:33141/game/cocos/cocos2d-js-min.js:1:636281)
at a (http://127.0.0.1:33141/game/cocos/cocos2d-js-min.js:1:636545)
at a (http://127.0.0.1:33141/game/cocos/cocos2d-js-min.js:1:636545)
at a (http://127.0.0.1:33141/game/cocos/cocos2d-js-min.js:1:636545)
大致看明白是cloudConfig.js没有定义,src/assets/cloud/cloudConfig.js这个是creator构建后自动生成的,限于个人js水平有限,也看不明白为什么没有定义
此时,端午节假期已经过去了,周末的一上午也过去了…我还在爬坑.
- 问题4描述:既然微信开发者工具我看不懂,creator自动生成的也看不懂,只能寄希望于能否在creator的腾讯云环境下直接解决问题,在腾讯云开通权限的界面看到了以下文档:
将云开发的SDK添加到您的Web应用
复制下方的代码片段,将其粘贴到您的HTML代码底部,其他script标记之前。
SDK 最新的版本号 version 可以在NPM中查询。
8
使用微信开放平台授权登录
const auth = app.auth();
async function login(){
// 1. 建议登录前先判断当前是否已经登录
const loginState = await auth.getLoginState();
if(!loginState){
// 2. 调用微信登录API
await auth.weixinAuthProvider({
appid: “your-appid”, // 微信开放平台的appid
scope: “snsapi_login”
}).signIn();
}
}
login();
直接照搬, 这段不明白,百度后大致明白是要引用一个文件,构建后的项目包含了这个文件,因为要再creator中开发,我把这个文件在本地新建了一个,然后尝试了3种方法来获得这个tcb
const tcb = require(‘tcb-js-sdk’);
//import tcb from “./tcbjs.js”;
”三个斜杠,引号斜括号(斜括号不知道为什么显示不出来,只能文字替代)reference path="./tcbjs.js"
有报错“load script [tcb-js-sdk] failed : Error: Cannot find module ‘tcb-js-sdk’”
其中我觉得import tcb from “./tcbjs.js”; 看起来比较靠谱,在creator浏览器模式下运行,依然报错:
Cannot read property ‘init’ of undefined
此时,距离尝试解决问题4已经又过去了3个小时.
-
tcb到底应该怎么获得???
-
cocos官方能否给一个在creator的腾讯云环境下,一个获得用户OPENID的范例?有了这个范例,小白对于如何调用云函数,数据库,还有获得微信环境的信息就都有范例了。对于已经用了小程序云开发的开发者影响可能不大,对于小白还真实一个很大的门槛.
本来不想发帖求助,假期+今天四处问人和翻阅资料,实在没有找到可行的解决问题办法,特来论坛求助!
还请各位能够答疑解惑,不甚感激!