小程序开发者工具方案demo踩坑
一个在其他地方没有明显赋值,但是最终却能获取到值的变量,让我十分的不安。到底是哪里给他赋值了呢?
首先,我去腾讯云的问答上搜索QcloudSecretId关键词,发现其实在这个开发文档中有提到这么一段话:
如果购买了腾讯云小程序解决方案,配置项中
serverHost
,tunnelServerUrl
,tunnelSignatureKey
,qcloudAppId
,qcloudSecretId
,qcloudSecretKey
,wxMessageToken
由腾讯云自动下发到您的服务器上。自动下发的 SDK 配置文件地址:
/data/release/sdk.config.json
这个自动下发是什么意思?是类似在开发者工具中的详情页面自动配置的各种域名地址么?还是demo中的目录(但是根本就没找到)?还有,我本身也并没有购买这个解决方案啊?我是从小程序后台的开发者工具菜单中开通的腾讯云,然后就分配的开发环境和生产环境。
所以这段话,我是忽略掉的。第一,我并没有购买;第二,我也找不到上面说的地址文件。
后来实在不行,既然全局搜索搜不到QcloudSecretId这个变量,那可能是另一种赋值方式,这个变量在Conf.php文件中,那赋值的话,肯定会引用这个文件。于是,全局搜索Conf,涉及的地方比较多。
经过查看,发现在install_qcloud_sdk.php文件中有个Conf::setup($config)有些意思。打开这个文件,发现这么一段
// 系统判断 if (PHP_OS === 'WINNT') { $sdkConfigPath = 'C:\qcloud\sdk.config'; } else { $sdkConfigPath = '/data/release/sdk.config.json'; } if (!file_exists($sdkConfigPath)) { echo "SDK 配置文件({$sdkConfigPath})不存在"; die; } // 合并 sdk config 和原来的配置 $sdkConfig = json_decode(file_get_contents($sdkConfigPath), true); if (!is_array($sdkConfig)) { echo "SDK 配置文件({$sdkConfigPath})内容不合法"; die; } $config = array_merge($sdkConfig, $config); //这里是我增加调试用的----beg----- echo "文件目录-----<<".dirname(__FILE__); echo "config =>>>>>>>>>>>>> ".$sdkConfigPath; print_r($config); //--------------end------------- /** * -------------------------------------------------------------------- * 设置 SDK 基本配置 * -------------------------------------------------------------------- */ Conf::setup($config);
原来在这里有个合并配置文件的操作,经过打印输出,确认了其实这些参数就是由腾讯云已经下发到的这个路径下。但是由于开发者工具并不能直接访问这个服务器,所以我也无法找到这个文件,更别说查看了。
这里还有一个小疑惑,那就是QcloudSecretId和Key都是可以在腾讯云的控制台查看的。我发现这里获取的这两个参数都和我的后台参数不一致,但是qcloudAppId确是一致的。
后来发现,一个appid可以对应多组秘钥,那就可以说通了。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭