摘要:本文以開(kāi)發(fā)一個(gè)類似語(yǔ)音口令紅包小程序?yàn)槔?,向您講解如何使用阿里云函數(shù)計(jì)算快速構(gòu)建微信小程序的服務(wù)端。
前言
這篇文章適合所有的想微信小程序開(kāi)發(fā)新手、老鳥(niǎo)以及想準(zhǔn)備學(xué)習(xí)開(kāi)發(fā)微信小程序的程序猿。本文以開(kāi)發(fā)一個(gè)類似"語(yǔ)音口令紅包“小程序?yàn)槔蚰v解如何使用阿里云函數(shù)計(jì)算快速構(gòu)建微信小程序的服務(wù)端。通過(guò)本文,您將會(huì)了解以下內(nèi)容:
demo概覽
傳統(tǒng)服務(wù)器架構(gòu) VS Serverless架構(gòu)
Serverless架構(gòu)詳解
demo開(kāi)發(fā)配置步驟
demo概覽在本教程中,我們講解如何利用函數(shù)計(jì)算一步一步來(lái)構(gòu)建微信小程序的server端,其中小程序參考"口令紅包", 實(shí)現(xiàn)一個(gè)簡(jiǎn)單版本,該demo中可以展示口令生成,口令轉(zhuǎn)發(fā),口令語(yǔ)音驗(yàn)證。
微信語(yǔ)音紅包小程序是基于微信小程序而開(kāi)發(fā)的語(yǔ)音紅包,發(fā)起者可以寫下想要讓別人說(shuō)的話(口令),并且將錢塞入此紅包中,其他用戶只要讀出這句話(口令)就可以獲得紅包。語(yǔ)音紅包可以發(fā)到特定的好友、微信群以及朋友圈,朋友需要根據(jù)文字口令說(shuō)出相應(yīng)的語(yǔ)音,才能獲得紅包。這種互動(dòng)行為,在朋友圈或者微信群社交的場(chǎng)景下,可以極大調(diào)動(dòng)互動(dòng)活躍度,規(guī)則簡(jiǎn)單方便,體驗(yàn)趣味十足,口令的形式豐富多樣(惡搞、示愛(ài)、祝賀、說(shuō)口號(hào)、甚至是廣告語(yǔ)),這些都讓口令紅包一直維持很高的熱度。
生成口令
轉(zhuǎn)發(fā)口令
錄音驗(yàn)證口令
傳統(tǒng)服務(wù)器架構(gòu) VS Serverless架構(gòu)正常來(lái)說(shuō),除了少數(shù)純客戶端的微信小程序運(yùn)用,絕大部分的小程序都有自己的server端。用戶開(kāi)發(fā)server端服務(wù),常常面臨開(kāi)發(fā)效率,運(yùn)維成本高,機(jī)器資源彈性伸縮等痛點(diǎn),而使用Serverless架構(gòu)可以很好的解決上述問(wèn)題。下面是傳統(tǒng)架構(gòu)和Serverless架構(gòu)的對(duì)比:
Item | Serverless | 傳統(tǒng)方式搭建服務(wù) |
---|---|---|
維護(hù)成本 | 維護(hù)成本低,無(wú)需管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫代碼并上傳,程序員從底層設(shè)備維護(hù)中解放出來(lái),只考慮實(shí)際業(yè)務(wù)邏輯即可。 | 維護(hù)成本高,自行維護(hù)服務(wù)器,需要處理服務(wù)器宕機(jī)、服務(wù)器擴(kuò)容等一系列底層瑣碎的事情 |
可用性 | 可用性高,函數(shù)計(jì)算為用戶準(zhǔn)備彈性、可靠的計(jì)算資源,具有根據(jù)流量自動(dòng)scale特性,對(duì)有明顯波峰波谷的運(yùn)用效果奇佳 | 服務(wù)器故障會(huì)對(duì)應(yīng)用服務(wù)產(chǎn)生嚴(yán)重影響 |
費(fèi)用 | 按需付費(fèi),只為實(shí)際使用的計(jì)算資源付費(fèi),代碼未運(yùn)行則不產(chǎn)生費(fèi)用 | 需要支付服務(wù)器的費(fèi)用,代碼運(yùn)行與否都要收費(fèi) |
阿里云函數(shù)計(jì)算是一個(gè)事件驅(qū)動(dòng)的全托管計(jì)算服務(wù)。通過(guò)函數(shù)計(jì)算,您無(wú)需管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫代碼并上傳。函數(shù)計(jì)算會(huì)為您準(zhǔn)備好計(jì)算資源,以彈性、可靠的方式運(yùn)行您的代碼,并提供日志查詢,性能監(jiān)控,報(bào)警等功能。借助于函數(shù)計(jì)算,您可以快速構(gòu)建任何類型的應(yīng)用和服務(wù),無(wú)需管理和運(yùn)維。
Serverless架構(gòu)詳解方案大致如上圖所示, 主要分為以下三個(gè)模塊:
Login & Auth
微信建議登錄時(shí)序圖如下, 其中第三方服務(wù)器用FC實(shí)現(xiàn):
語(yǔ)音識(shí)別(包含音頻格式轉(zhuǎn)換)
ffmpeg進(jìn)行音頻格式轉(zhuǎn)換
百度語(yǔ)言識(shí)別開(kāi)發(fā)文檔
方案圖下部虛線框柱的是可以拓展的模塊,本demo中不展示,用戶可以根據(jù)需求接入
比如微信小程序直接上傳文件到oss保存,函數(shù)計(jì)算可以從oss拉取對(duì)應(yīng)的數(shù)據(jù)做處理;如果需要數(shù)據(jù)庫(kù)功能,可以采用otsdemo開(kāi)發(fā)配置步驟
1,開(kāi)通阿里云賬號(hào),同時(shí)需要開(kāi)通的產(chǎn)品有函數(shù)計(jì)算, api網(wǎng)關(guān)
2,購(gòu)買獨(dú)立域名,同時(shí)需對(duì)域名備案,以及購(gòu)買阿里云免費(fèi)ssl證書,購(gòu)買步驟可參考免費(fèi)申請(qǐng)阿里云DV SSL證書
3,開(kāi)通微信小程序開(kāi)發(fā)認(rèn)證,以及百度語(yǔ)音識(shí)別
4,從github下載相應(yīng)的源碼,里面client目錄表示客戶端,server表示用于創(chuàng)建函數(shù)。
1,利用源碼中的server目錄創(chuàng)建服務(wù)端函數(shù),比如函數(shù)名為wechatEntry,有以下兩種方案創(chuàng)建函數(shù):
利用控制臺(tái)打包上傳,設(shè)置對(duì)應(yīng)的handler, 函數(shù)計(jì)算控制臺(tái)使用可參考hello world, 特別是控制臺(tái)上傳代碼包創(chuàng)建函數(shù)部分。下面是重要步驟截圖:
函數(shù)計(jì)算熟悉fcli的工具的老用戶可以使用函數(shù)計(jì)算命令行工具fcli, fcli使用說(shuō)明
fcli function create -f wechatEntry -h main.handler -d server -t python2.7 -s wechat
注意:上面兩種方案創(chuàng)建函數(shù)之前都需先把函數(shù)中main.py中相關(guān)開(kāi)發(fā)配置改成自己申請(qǐng)的,包括微信小程序開(kāi)發(fā)者相關(guān)配配置,百度語(yǔ)音識(shí)別相關(guān)配置
2, 以函數(shù)計(jì)算作為 API 網(wǎng)關(guān)后端服務(wù)
api網(wǎng)關(guān)支持https服務(wù),具體可以參考api網(wǎng)關(guān)支持https
函數(shù)計(jì)算作為api網(wǎng)關(guān)后端服務(wù)
api網(wǎng)關(guān)中設(shè)置函數(shù)對(duì)應(yīng)的api分組配置獨(dú)立域名
最后效果圖以及調(diào)試界面如下:
按照微信小程序官方教程,創(chuàng)建對(duì)應(yīng)的小程序賬號(hào)以及工程,需要注意的是要把a(bǔ)pi網(wǎng)關(guān)中配置的域名添加到微信小程序的開(kāi)發(fā)配置中:
直接用微信小程序開(kāi)發(fā)工具打開(kāi),修改對(duì)應(yīng)請(qǐng)求域名和appid即可,打開(kāi)如下圖所示:
利用函數(shù)計(jì)算可以快速搭建微信小程序的serverless運(yùn)用,結(jié)合oss,ots可以豐富server的功能,免服務(wù)器,免運(yùn)維,成本低,不用擔(dān)心流量,只需要函數(shù)就可以實(shí)現(xiàn),你值的擁有!
github源碼地址 一些補(bǔ)充FAQ, 僅供參考fc可以接入sls,通過(guò)sls日志,可以查看你函數(shù)運(yùn)行的情況,具體可以參考函數(shù)訪問(wèn)日志服務(wù)
可以參考函數(shù)計(jì)算流式處理大文件的分治思想對(duì)語(yǔ)音分割進(jìn)行流式處理,或者直接選用有流式處理的語(yǔ)音識(shí)別的服務(wù)。
可以參考微信小程序中客戶端utils文件夾下面的uploadAliyun.js
聲明微信小程序使用的圖片和部分樣式素材來(lái)自互聯(lián)網(wǎng),在此聲明,這個(gè)demo僅僅是做學(xué)習(xí)交流展示使用,并沒(méi)有涉及商業(yè)化,如果原作者看到,請(qǐng)?jiān)谖恼孪旅媪粞曰蛘呓o我發(fā)郵件,我注明引用地址。
歡迎大家通過(guò)掃碼加入我們用戶群中,搭建過(guò)程中有問(wèn)題或者有其他問(wèn)題可以在群里提出來(lái)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41897.html
摘要:摘要阿里云函數(shù)計(jì)算是一個(gè)事件驅(qū)動(dòng)的全托管計(jì)算服務(wù)。微信小程序是一種不需要下載安裝即可使用的應(yīng)用,它可以在微信內(nèi)被便捷地獲取和傳播。本文以開(kāi)發(fā)一個(gè)類似語(yǔ)音口令紅包小程序?yàn)槔蚰v解如何使用阿里云函數(shù)計(jì)算快速構(gòu)建微信小程序的服務(wù)端。 摘要: 阿里云函數(shù)計(jì)算是一個(gè)事件驅(qū)動(dòng)的全托管計(jì)算服務(wù)。通過(guò)函數(shù)計(jì)算,您無(wú)需管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫代碼并上傳。微信小程序是一種不需要下載安裝即可使用的...
摘要:摘要阿里云函數(shù)計(jì)算是一個(gè)事件驅(qū)動(dòng)的全托管計(jì)算服務(wù)。微信小程序是一種不需要下載安裝即可使用的應(yīng)用,它可以在微信內(nèi)被便捷地獲取和傳播。本文以開(kāi)發(fā)一個(gè)類似語(yǔ)音口令紅包小程序?yàn)槔?,向您講解如何使用阿里云函數(shù)計(jì)算快速構(gòu)建微信小程序的服務(wù)端。 摘要: 阿里云函數(shù)計(jì)算是一個(gè)事件驅(qū)動(dòng)的全托管計(jì)算服務(wù)。通過(guò)函數(shù)計(jì)算,您無(wú)需管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫代碼并上傳。微信小程序是一種不需要下載安裝即可使用的...
摘要:本文以開(kāi)發(fā)一個(gè)類似語(yǔ)音口令紅包小程序?yàn)槔?,向您講解如何使用阿里云函數(shù)計(jì)算快速構(gòu)建微信小程序的服務(wù)端。 前言 這篇文章適合所有的想微信小程序開(kāi)發(fā)新手、老鳥(niǎo)以及想準(zhǔn)備學(xué)習(xí)開(kāi)發(fā)微信小程序的程序猿。本文以開(kāi)發(fā)一個(gè)類似語(yǔ)音口令紅包小程序?yàn)槔?,向您講解如何使用阿里云函數(shù)計(jì)算快速構(gòu)建微信小程序的服務(wù)端。通過(guò)本文,您將會(huì)了解以下內(nèi)容: demo概覽 傳統(tǒng)服務(wù)器架構(gòu) VS Serverless架構(gòu) S...
摘要:春招結(jié)果五月份了,春招已經(jīng)接近尾聲,因?yàn)榈搅酥芪逋砩蟿偤糜锌?,所以?jiǎn)單地記錄一下自己的春招過(guò)程。我的春招從二月初一直持續(xù)到四月底,截止今天,已經(jīng)斬獲唯品會(huì)電商前端研發(fā)部大數(shù)據(jù)與威脅分析事業(yè)部京東精銳暑假實(shí)習(xí)生的騰訊的是早上打過(guò)來(lái)的。 春招結(jié)果 五月份了,春招已經(jīng)接近尾聲,因?yàn)榈搅酥芪逋砩蟿偤糜锌?,所以?jiǎn)單地記錄一下自己的春招過(guò)程。我的春招從二月初一直持續(xù)到四月底,截止今天,已經(jīng)斬獲唯品...
摘要:昨晚月日微信應(yīng)用號(hào)萌萌噠的化身小程序才剛開(kāi)始宣布內(nèi)測(cè),今天朋友圈就刷屏了真是一石激起千層浪,各種分析預(yù)測(cè)文章鋪天蓋地而來(lái),讓人應(yīng)接不暇。微信小程序?qū)崿F(xiàn)了千千萬(wàn)萬(wàn)前端工程師開(kāi)發(fā)的夢(mèng)想,想不火都難。 showImg(https://segmentfault.com/img/remote/1460000006981816?w=900&h=500); 昨晚(9月21日)微信應(yīng)用號(hào)萌萌噠的化身—...
閱讀 3662·2021-10-11 10:58
閱讀 2251·2021-10-08 10:05
閱讀 2034·2021-09-27 13:34
閱讀 3574·2019-08-30 15:53
閱讀 2733·2019-08-30 14:02
閱讀 3562·2019-08-29 16:55
閱讀 623·2019-08-29 15:41
閱讀 1070·2019-08-29 15:23