成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

利用Leancloud開發(fā)小程序-生成小程序二維碼

paulquei / 1785人閱讀

什么是Leancloud

Leancloud是國內(nèi)有名的BaaS提供商,什么是BaaS提供商呢?通俗點講就是給你提供增刪改查等后臺服務的API,你通過這些API就可以將數(shù)據(jù)存儲在云端數(shù)據(jù)庫中,而不需要關系服務器環(huán)境和里面的處理邏輯,它提供的SDK有js、java、object-c、python等等。

類似的BaaS提供商還有谷歌的firebase(www.firebase.com),但容易被墻不推薦。

所以我們可以不需要自己搭建后臺環(huán)境就可以實現(xiàn)小程序的后端需要了,這樣可以極高的提高開發(fā)效率,縮短開發(fā)周期。

如何使用Leancloud進行小程序開發(fā) 關于增刪改查

Leancloud提供了完整的增刪改查API,只要根據(jù)文檔給到API進行調(diào)用就行,這個就不詳細描述了,請看文檔:https://leancloud.cn/docs/lea...

關于小程序授權登陸

下面地址詳情描述了如何實現(xiàn)授權登陸:
https://leancloud.cn/docs/wea...用戶系統(tǒng)

關于小程序需要后端的API調(diào)用

這里所說的需要后臺的API調(diào)用,指類似:微信支付、二維碼生成、微信提現(xiàn)、微信發(fā)紅包、發(fā)送模版信息等等。
要實現(xiàn)這些功能必須使用 Leancloud的云引擎中的云函數(shù)

什么是云函數(shù)

就是我們可以簡單的編寫一個可以執(zhí)行的node函數(shù)部署到leancloude的云引擎中,直接使用leancloud的API就可以直接執(zhí)行你編寫的函數(shù),不需要像以前編寫后端需要關心后端服務器環(huán)境那么復雜,只需要執(zhí)行一段指令將云函數(shù)部署到云端就可以執(zhí)行了。
詳情請看:https://leancloud.cn/docs/lea...

如何編寫云函數(shù)

https://leancloud.cn/docs/lea...
這里有詳細說明,我就不贅述了。

如何部署云函數(shù)

我們這里介紹如何使用github部署:

注冊并創(chuàng)建leancloud應用:這個就不用說把,網(wǎng)站:https://leancloud.cn

設置云引擎
進入第一步創(chuàng)建的應用-云引擎-設置,將git的地址填進去,這個代碼庫可以fork我的代碼倉庫(https://github.com/jasondu/le...),然后復制Deploy Key,然后到自己fork的github設置頁面中的【Deploy keys】選項,添加一個Deploy Keys,Title隨便寫,Key就是剛才復制的,然后點擊保存即可。

部署云引擎
回到云引擎-部署,“分支或版本號”填入master,點擊部署就可以部署云引擎了。

下面我們通過“生成小程序二維碼”來講解如何使用云函數(shù)開發(fā)小程序后臺

生成小程序二維碼 小程序二維碼分類:
從類型分類:

小程序二維碼:那個圓形的二維碼

普通二維碼

是否可以無限生成分類:

無限

有限

這幾種分類對應著下面三個接口:

小程序二維碼、有限的
https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN

小程序二維碼、無限的
https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

普通二維碼、有限的
https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

云函數(shù)規(guī)劃

入?yún)Ⅱ炞C

獲取accessToken

調(diào)用二維碼生成接口獲取二維碼二進制流

保存二維碼到leancloud

代碼
AV.Cloud.define("getwxacode", function (request, response) {
    const params = request.params;
    const requireParams = ["type"];
    let url;

    switch (params.type) {
        case 1:
            url = "https://api.weixin.qq.com/wxa/getwxacode";
            requireParams.push("path");
            break;
        case 2:
            url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit";
            requireParams.push("page");
            requireParams.push("scene");
            break;
        case 3:
            url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode";
            requireParams.push("path");
            break;
    }
    // 1. 入?yún)Ⅱ炞C
    requireValidate(params, requireParams).then(params => {
        // 2. 獲取accessToken
        wxapi.getLatestToken((err, accessToken) => {
            // 3. 調(diào)用二維碼生成接口獲取二維碼二進制流
            axios.post(url, params, {
                params: {
                    access_token: accessToken.accessToken,
                    dataType: "JSON",
                },
                responseType: "arraybuffer"
            }).then((res) => {
                // 4. 保存二維碼到leancloud
                if (typeof res.data === "undefined") {
                    return response.error("生成二維碼失敗");
                } else {
                    const imageFile = new AV.File("file-qrcode.png", res.data);
                    imageFile.save().then((res) => {
                        return response.success(res);
                    }, (error) => {
                        return response.error(err);
                    });
                }
            });
        });
    }).catch(err => {
        return response.error(err);
    });
})

requireValidate: 驗證入?yún)⒌姆椒?br>注意:這里獲取二維碼必須要用axios的方式進行請求,否則返回的圖片信息會保存失敗

調(diào)用云函數(shù)(小程序代碼)
const AV = require("../libs/leancloud/av-weapp-min.js");
const paramsJson = {
    type: 1,
    path: "/pages/index/index"
};
AV.Cloud.run("getwxacode", paramsJson).then(function (data) {
    // 調(diào)用成功,得到生成二維碼的鏈接
    console.log(data.url);
}, function (err) {
    // 處理調(diào)用失敗
    console.log(err);
});
代碼地址

https://github.com/jasondu/le...

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/88368.html

相關文章

  • 如何從零入門React?實戰(zhàn)做個FM應用吧

    摘要:面試造航母,工作擰螺絲,新公司面試技術官要求會技術棧。然而公司項目暫時并沒有用到,不過為了提升實戰(zhàn)經(jīng)驗,還是在業(yè)余時間搗騰出一個,以下是項目介紹。前段為了學習小程序的開發(fā),做了個小程序名叫口袋吉他,這也是個人興趣驅使的開發(fā)想法。 面試造航母,工作擰螺絲,新公司面試技術官要求會react技術棧。 問:有使用過React么?答:沒,只使用過Vue。又問:給你一星期能上手開發(fā)么?答:可以(一...

    codecook 評論0 收藏0
  • 周報系統(tǒng),支持導出和郵件提醒

    摘要:并利用提供的云引擎服務實現(xiàn)在周五給全員發(fā)送郵件提醒填寫周報,周六周日分別再次對未填人員發(fā)送郵件進行填寫提醒。雖然提供的免費云引擎,本身就支持服務,但是免費版是做測試用的,會自動休眠,不夠穩(wěn)定,經(jīng)常掛掉。 This just is a README. showImg(https://segmentfault.com/img/remote/1460000013260535);showImg...

    cheng10 評論0 收藏0
  • 周報系統(tǒng),支持導出和郵件提醒

    摘要:并利用提供的云引擎服務實現(xiàn)在周五給全員發(fā)送郵件提醒填寫周報,周六周日分別再次對未填人員發(fā)送郵件進行填寫提醒。雖然提供的免費云引擎,本身就支持服務,但是免費版是做測試用的,會自動休眠,不夠穩(wěn)定,經(jīng)常掛掉。 This just is a README. showImg(https://segmentfault.com/img/remote/1460000013260535);showImg...

    baoxl 評論0 收藏0
  • 微信程序音樂播放器,leancloud后端支持,體驗程序數(shù)據(jù)綁定,Promise較為優(yōu)雅解決回調(diào)

    摘要:初窺添加音樂到收藏最近列表歌詞滾動從一個開始微信開發(fā)者工具生成目錄如下主頁日志頁面工具大體為每一個即是一個頁面文件,每個頁面有一個文件規(guī)定描述頁面的這四個文件必須具有相同的路徑與文件名。 showImg(https://segmentfault.com/img/remote/1460000009405866);showImg(https://segmentfault.com/img/r...

    go4it 評論0 收藏0

發(fā)表評論

0條評論

paulquei

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<