騰訊,疼訊,很疼.
請慎重看騰訊給出的文檔,最好做一個筆記.
我只能說我能力有限,在騰訊云小程序的文檔中跳了n天.
最后還是覺得記錄下來,以防止我的cpu過載給燒了.
此文檔是對<小程序解決方案開通指引>
https://cloud.tencent.com/document/product/619/11447
的有力補充
寫作時間為 2017年11月25日10:30. 參考時請注意時效.
第一步, 疼訊文檔之亂 [非正文,吐個槽]
我在這里記錄,初入門者慎入
, 直接進入第二步即可.
鄙視騰訊的^C^Ver
們, 借助github那是一個瘋狂呀.
新文檔里面套舊文檔的鏈接.
代碼庫地址鏈接到文檔地址.
看的我是各種懵逼.
具體內(nèi)容請查看我博客中"小程序,疼訊騰訊的文檔之亂".
第二步, 通過小程序的微信公眾平臺啟用騰訊云開發(fā)
參考:https://cloud.tencent.com/document/product/619/11447
有修改.
打開微信小程序管理后臺
(注意: 公眾號和小程序使用相同的登錄入口, 小程序賬號登錄后是小程序的后臺, 公眾號登錄后是公眾號的后臺)
會登錄到騰訊云的控制臺(截圖有部分功能使用過后就不能重現(xiàn)的,直接就使用了騰訊的截圖,會有一些區(qū)別,作為參考是沒有問題的).
https://console.qcloud.com/lav2/dev
(此圖使用騰訊截hen圖jiu,新的控制臺樣式見下一張圖)
開通騰訊小程序開發(fā)環(huán)境的截圖(截圖日期2017-11-25)
此圖表示開發(fā)環(huán)境部署完成.
第二步 下載Demo到本地
從github上下載demo代碼到本地目錄
項目地址:
https://github.com/tencentyun/wafer2-quickstart-nodejs
代碼已經(jīng)fork到我的github上.如果以上鏈接不是代碼可以直接使用:
https://github.com/acharzuo/wafer2-quickstart-nodejs
git clone https://github.com/tencentyun/wafer2-quickstart-nodejs.git
進入git目錄執(zhí)行(本地需要有node環(huán)境.未安裝的請百度)
# 切換到 server 文件夾
cd server
# 安裝依賴
npm install
打開小程序開發(fā)工具
第三步, 修改配置參數(shù)
打開/server/config.js, 修改數(shù)據(jù)庫密碼為小程序的appid.
點擊右上角的上傳騰訊云
查看騰訊云狀態(tài).
選擇復制開發(fā)環(huán)境request域名.
打開/client/config.js 修改主機名.
至此小程序基于騰訊云的開發(fā)部署完成…. 然….
點擊登錄, 成功!
點擊上傳圖片??? ,圖片哪里去了. 后議. 什么, 你提示上傳成功沒有顯示出來, 不好意思我也沒有. 你要理解馬哥.
打開信道/發(fā)送消息,成功.
不該有的第四步 圖片上傳成功打開失敗的詭異之舉.
當然,代碼是沒有詭異的.
分析原因
-
分析一下, 打開小程序的控制臺 console. 發(fā)現(xiàn)一有一個錯誤提示:
Failed to load image
http://qcloudtest-XXXXXX.cosundefined.myqcloud.com/1511574499754-BJh1nrLeM.jpg
net::ERR_NAME_NOT_RESOLVED
qcloudtest-XXXXXX.cos
undefined
.myqcloud.com, undefined, 什么鬼,為什么會出現(xiàn)這個玩意?從連接字樣上看是上傳到騰訊的cos服務(wù)器上了.
-
打開騰訊后臺進入cos服務(wù)器
https://console.qcloud.com/cos4/bucket
有剛才上傳的文件. bucket是qcloudtest, 文件名是:1511574499754-BJh1nrLeM.jpg
-
問題出在哪里了?
打開cos上的文件信息
看見鬼了沒有.
小程序控制臺打印出的是:
qcloudtest-XXXXXX.cos
undefined
.myqcloud.com而cos上的是
qcloudtest-XXXX.cos
gz
.myqcloud.com好好的一個標準初始化小程序,竟然鬧這樣.
-
繼續(xù),看看服務(wù)器配置文件
打開服務(wù)器配置文件 /server/config.js 騰訊云的對象服務(wù)器cos配置是這樣的.
哦? 默認cn-south華南, bucket是qcloudtest, 繼續(xù)打開See,看看里面的說明把.
https://cloud.tencent.com/document/product/436/6224
終于在
適用于 JSON API
中找了說明.undefined
為地域簡稱,gz是廣州(華南)的檢測.cos控制臺確定qcloudtest是在廣州.
話又說回來了, 那
cn-south
又是什么呢?https://cloud.tencent.com/document/product/436/6224
文檔中未做說明.
-
既然是上傳的問題,那就順著上傳的路,繼續(xù)網(wǎng)上找.
上傳接口在: /server/controllers/uploads.js
里面有引用了: /server/qcloud.js
里面初始化了:/server/config.js, 還引用了
wafer-node-sdk
翻翻wafer-node-sdk看看.
打開: /server/node_modules/wafer-node-sdk(在sublime或者其他工具中打開)
找到上傳相關(guān)的js: /server/node_modules/wafer-node-sdk/lib/upload/index.js
在wafer-node-sdk包中圖片返回
imgUrl:
[http://config.cos.fileBucket?](http://%24%7Bconfig.cos.filebucket%7D-%24/) {config.qcloudAppId}.cos
regionMap[config.cos.region].myqcloud.com/
{imgKey}
,
是根據(jù)
regionMap
中的地址獲取的, 而cn-south
并不在regionMap
中. -
修改/server/config.js
將cos的region改為與cos服務(wù)器的地址相對應(yīng)的得與的
regionMap
的key.重新上傳測試代碼(騰訊云->上傳測試代碼)
測試上傳圖片. 我能說又出現(xiàn)新的問題了嗎!!!!!!! (在….瘋….中… 凌亂)
-
繼續(xù), 解決403問題.
復制圖片鏈接到chrome中,并打開開發(fā)者模式
發(fā)現(xiàn)返回json錯誤,并且報403錯誤. 是無權(quán)限訪問cos服務(wù)器. json提示需要簽名. 這個通常是服務(wù)器配置的問題.
返回騰訊云cos控制臺, 看到在基礎(chǔ)配置中的訪問權(quán)限是"私有讀寫",將其改為"公有讀私有寫"
打開小程序,上傳圖片. OK
如果能@騰訊的話. 我希望,騰訊的兄弟們, 技術(shù)是嚴謹?shù)? 請珍重. B被A打下去了,難道T也要被打嗎?
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">