釘釘微應用開發筆記


這是我的第一份博客,用於記錄自己正在開發的釘釘微應用項目,以便於以后工作和自己開發,希望自己以后能成為一流的開發人員。

開始   

項目前端基於JS,后端使用的nodejs。

這個項目讓我收獲的有:

  1. 熟悉JS使用
  2. 大致了解了koa框架的開發流程(希望以后能完整的開發一個koa項目供自己使用)
  3. 大致了解了jade模板引擎的使用方式,關於格式的縮進,引擎的邏輯並沒有練習
  4. 釘釘的各種API調用  
  5. 使用nodemon自動啟動nodejs(修改代碼)

 

Koa

Koa是非常輕量的框架,能夠直接使用各種中間件開始開發自己想要的后端,網上文檔清晰,中文文檔豐富,最初接觸Node直接開始試用sails,框架龐大甚至臃腫,但是確實能省不少搭建的事,但是沒有中文文檔並且網上的資源極少,對於剛入門后端的我簡直痛苦不堪,如果以后有人請教我node怎么學習,我一定推薦他現在敲一天node,然后再從express或者koa入門。

Jade模板引擎

相較於EJS其實我更喜歡用EJS,EJS更貼近HTML,格式更清晰,更容易理解,不過Jade也有他自己的好處,通過縮進就能調節格式,有自己獨特的一套格式,如果熟練也能很快的開發,這次試用Jade的原因是因為釘釘官方給的demo用的是Jade,換成EJS后並不知道怎么把獲取到的數據導入到EJS模板里的最終又換回來了,以后可以直接試試在<% var demo = _demo %>注入一個參數試試

nodemon

nodemon是一個后端的管理工具,能夠在我修改代碼后自動重啟服務器,還有其他功能這次並沒有使用,最初使用這類工具的目的是,在回家后雲端的服務器會自動關閉,這類工具能夠解決這個問題。(但是並沒有解決...)

釘釘微應用開發

這次主要開發的任務是釘釘微應用的開發,項目的目的是為了讓公司的業務結合在釘釘上,這樣業務更流暢清晰,方便管理人員及時獲取外勤人員的狀態,任務的動向與錯誤匯報。

這是一個最初的設計樣式,其實就是用官方的demo結合而成的,外勤人員進入應用可以看到自己待辦的任務和已完成的任務,點擊待辦任務可以更改完成情況已進行任務反饋。

應用開發分為幾個步奏:

  1. 需要登錄釘釘管理員平台申請應用 (后台地址什么用還不知道~,首頁地址及微應用的地址,PC版的需要單獨開發,現在只用了移動版本的)
  2. 應用創建好后就可以進行開發了,開發需要自己的服務器,前端后釘釘的服務器進行幾次交互,來驗證應用以及調用更多的釘釘API,創建的流程如下圖
    1. 首先在服務器端通過corpid(公司ID)和corpsecret(公司密碼)獲取到access_token。
    2. 再通過獲取到的access_token獲取到jsapi_ticket。
    3. 通過把獲取到的nonceStr(用於生成簽名的隨機串'abcdefg'),timeStamp(時間戳),url(decodeURIComponent(this.href)),ticket(jsapi_ticket)通過算法獲得標簽signature。
    4. 將標簽signature,nonceStr(用於生成簽名的隨機串'abcdefg'),timeStamp(時間戳),corpid(公司ID)發送給自己前端,用來調用jsApi:dd.config()
  3. 前端配置如下
    1. 直接對應填寫相關數據即可
    2. jsApiList是必須填寫的,你如果需要調用哪些API,就要先填寫在這里,不然調用的時候會err
  4. dd.ready(),當釘釘api准備好后,會執行dd.ready,所以api應該寫在這里面,不然可能會實現不了
  5. 免登:
    1. 在客戶端通過獲取到免登code,post到服務端
    2. 服務端獲取到這個code,然后通過corpid(公司ID)和corpsecret(公司密碼)獲取到access_token

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

       

  6. 頁面跳轉:頁面跳轉好像文檔里面沒有找到,在官方給的demo里看到的
    1. dd.biz.util.openLink({
           url: url
          });
    2. 直接使用openLink便可以實現頁面跳轉,跳轉到新的頁面還是要進行dd.config({}),后台要重新生成新的標簽傳到新的頁面

 

其他都是業務上的邏輯了,如果有基礎上的更新以后可以繼續更新,開發釘釘微應用是基於前后端一體的項目,對自己之前各種知識算是一個匯總

12/19:更新免登

12/25:頁面跳轉,后台框架更新成sails

 

 

 

git地址:https://github.com/yhkevin93/node/tree/master/釘釘項目

sails版:https://github.com/yhkevin93/node/tree/master/釘釘項目sails


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM