釘釘微應(yīng)用開發(fā)筆記

這是我的第一份博客,用于記錄自己正在開發(fā)的釘釘微應(yīng)用項(xiàng)目,以便于以后工作和自己開發(fā),希望自己以后能成為一流的開發(fā)人員。

開始

項(xiàng)目前端基于JS,后端使用的nodejs。

這個(gè)項(xiàng)目讓我收獲的有:

1.熟悉JS使用
2.大致了解了koa框架的開發(fā)流程(希望以后能完整的開發(fā)一個(gè)koa項(xiàng)目供自己使用)
3.大致了解了jade模板引擎的使用方式,關(guān)于格式的縮進(jìn),引擎的邏輯并沒有練習(xí)
4.釘釘?shù)母鞣NAPI調(diào)用  
5.使用nodemon自動(dòng)啟動(dòng)nodejs(修改代碼)

Koa

Koa是非常輕量的框架,能夠直接使用各種中間件開始開發(fā)自己想要的后端,網(wǎng)上文檔清晰,中文文檔豐富,最初接觸Node直接開始試用sails,框架龐大甚至臃腫,但是確實(shí)能省不少搭建的事,但是沒有中文文檔并且網(wǎng)上的資源極少,對(duì)于剛?cè)腴T后端的我簡直痛苦不堪,如果以后有人請(qǐng)教我node怎么學(xué)習(xí),我一定推薦他現(xiàn)在敲一天node,然后再從express或者koa入門。

Jade模板引擎

相較于EJS其實(shí)我更喜歡用EJS,EJS更貼近HTML,格式更清晰,更容易理解,不過Jade也有他自己的好處,通過縮進(jìn)就能調(diào)節(jié)格式,有自己獨(dú)特的一套格式,如果熟練也能很快的開發(fā),這次試用Jade的原因是因?yàn)獒斸敼俜浇o的demo用的是Jade,換成EJS后并不知道怎么把獲取到的數(shù)據(jù)導(dǎo)入到EJS模板里的最終又換回來了,以后可以直接試試在<% var demo = _demo %>注入一個(gè)參數(shù)試試

nodemon

nodemon是一個(gè)后端的管理工具,能夠在我修改代碼后自動(dòng)重啟服務(wù)器,還有其他功能這次并沒有使用,最初使用這類工具的目的是,在回家后云端的服務(wù)器會(huì)自動(dòng)關(guān)閉,這類工具能夠解決這個(gè)問題。(但是并沒有解決...)

釘釘微應(yīng)用開發(fā)

這次主要開發(fā)的任務(wù)是釘釘微應(yīng)用的開發(fā),項(xiàng)目的目的是為了讓公司的業(yè)務(wù)結(jié)合在釘釘上,這樣業(yè)務(wù)更流暢清晰,方便管理人員及時(shí)獲取外勤人員的狀態(tài),任務(wù)的動(dòng)向與錯(cuò)誤匯報(bào)。

這是一個(gè)最初的設(shè)計(jì)樣式,其實(shí)就是用官方的demo結(jié)合而成的
,外勤人員進(jìn)入應(yīng)用可以看到自己待辦的任務(wù)和已完成的任務(wù),點(diǎn)擊待辦任務(wù)可以更改完成情況已進(jìn)行任務(wù)反饋。

應(yīng)用開發(fā)分為幾個(gè)步奏:

1.需要登錄釘釘管理員平臺(tái)申請(qǐng)應(yīng)用

(后臺(tái)地址什么用還不知道~,首頁地址及微應(yīng)用的地址,PC版的需要單獨(dú)開發(fā),現(xiàn)在只用了移動(dòng)版本的)

2.應(yīng)用創(chuàng)建好后就可以進(jìn)行開發(fā)了,開發(fā)需要自己的服務(wù)器,前端后釘釘?shù)姆?wù)器進(jìn)行幾次交互,來驗(yàn)證應(yīng)用以及調(diào)用更多的釘釘API,創(chuàng)建的流程如下圖

1.首先在服務(wù)器端通過corpid(公司ID)和corpsecret(公司密碼)獲取到access_token。
2.再通過獲取到的access_token獲取到j(luò)sapi_ticket。

3.通過把獲取到的nonceStr(用于生成簽名的隨機(jī)串'abcdefg'),timeStamp(時(shí)間 戳),url(decodeURIComponent(this.href)),ticket(jsapi_ticket)通過算法獲得標(biāo)簽signature。
4.將標(biāo)簽signature,nonceStr(用于生成簽名的隨機(jī)串'abcdefg'),timeStamp(時(shí)間戳),corpid(公司ID)發(fā)送給自己前端,用來調(diào)用jsApi:dd.config()

3.前端配置如下

直接對(duì)應(yīng)填寫相關(guān)數(shù)據(jù)即可
jsApiList是必須填寫的,你如果需要調(diào)用哪些API,就要先填寫在這里,不然調(diào)用的時(shí)候會(huì)err

4.dd.ready(),當(dāng)釘釘api準(zhǔn)備好后,會(huì)執(zhí)行dd.ready,所以api應(yīng)該寫在這里面,不然可能會(huì)實(shí)現(xiàn)不了

5.免登:在客戶端通過
獲取到免登code,post到服務(wù)端

服務(wù)端獲取到這個(gè)code,然后通過corpid(公司ID)和corpsecret(公司密碼)獲取到access_token

然后通過access_token和獲取到的code通過/user/getuserinfo獲取到用戶信息

6.頁面跳轉(zhuǎn):頁面跳轉(zhuǎn)好像文檔里面沒有找到,在官方給的demo里看到的dd.biz.util.openLink({ url: url });
直接使用openLink便可以實(shí)現(xiàn)頁面跳轉(zhuǎn),跳轉(zhuǎn)到新的頁面還是要進(jìn)行dd.config({}),后臺(tái)要重新生成新的標(biāo)簽傳到新的頁面

其他都是業(yè)務(wù)上的邏輯了,如果有基礎(chǔ)上的更新以后可以繼續(xù)更新,開發(fā)釘釘微應(yīng)用是基于前后端一體的項(xiàng)目,對(duì)自己之前各種知識(shí)算是一個(gè)匯總
12/19:更新免登
12/25:頁面跳轉(zhuǎn),后臺(tái)框架更新成sails

git地址:https://github.com/yhkevin93/node/tree/master/釘釘項(xiàng)目
sails版:https://github.com/yhkevin93/node/tree/master/釘釘項(xiàng)目sails

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容