天天看點

自定義企業首頁文檔

接下來,你一共需要經曆三個操作,配置好url,就可以愉快的開發你自己企業首頁的定制實作了。

理論上,需要填寫的url是你web應用的真實位址,而且不要忘記了在url位址後跟随的search參數corpid,corpid是可以在管理背景擷取的。

自定義企業首頁文檔

點選建立應用,建立你的微應用:

自定義企業首頁文檔

帶*号的表示必填,記錄好你的agentid,需要注意的是填寫微應用的url時,要跟你的web應用的啟動位址對應上:

自定義企業首頁文檔

一個web應用是有兩個部分組成的,整體上來說,我們推薦采用前後分離的架構,這也是我們推薦的一種應用架構類型。服務端可以自行決定采用什麼語言,使用什麼樣的架構來定義你的接口實作。

對于自定義企業首頁而言,需要重點關注的是兩個部分的業務:js-api權限校驗和免登。釘釘容器層面上,對于某些js-api是有權限校驗的,而免登來說才是企業首頁要打通自己企業員工體系的唯一入口。

重要說明

自定義企業首頁文檔

corpid和corpsecret是一對重要的憑證,你需要好好保護它不對外流出,接下來要做的事情都需要它們,corpid和corpsecret都可以在釘釘的管理背景中擷取。

js-api權限校驗(業務實作,請按照我給你梳理的順序,正序執行,2必然依賴于1,3必然依賴于2,請不要随意跳過步驟。):

通過 gettoken 接口,參數為url?corpid=corpid&corpsecret=corpsecret(get) 擷取access_token,過期時間為7200秒,建議:将它全局緩存。這對于優化服務能有很大的作用,如果有時候傳回了錯誤資訊,這說明太頻繁的調用了 gettoken 接口。

通過 get_jsapi_ticket 接口,參數為url?access_token=access_token(get) 來擷取ticket,過期時間為7200秒,建議:将它全局緩存,如果有時候傳回了錯誤資訊,這說明太頻繁的調用了 get_jsapi_ticket 接口。

對ticket進行簽名,簽名算法為 sha1,一共需要傳入的參數有:noncestr,timestamp,signedurl,ticket四個,noncestr為随意定義的key名,timestamp是你目前的時間戳,signedurl為不包含#(hash)以及其後面部分的url,如果前端對url進行了encodeuricomponent,那麼在服務端需要對其decodeuricomponent(建議:url在前端一定要encodeuricomponent來處理特殊字元,中文等,統一在服務端decodeuricomponent)。ticket為你通過 get_jsapi_ticket 接口擷取的傳回。

生成了簽名之後将noncestr,timestamp,signature,corpid,agentid 傳回給前端,注意:noncestr 和 timestamp 一定要是你服務端剛生成簽名時所用的 noncestr 和 timestamp。

前端拿到傳回後,将其添加到dd.config中。注意:當調用某些需要授權的api時,如果簽名校驗失敗,一定要查一下url等參數是否一緻,如果不一緻,很可能導緻和服務端簽名對應不上,而導緻在native上校驗失敗。必要時通過dd.error注冊一下錯誤資訊,可以看到一些必要的錯誤提示。

免登(業務實作,請按照我給你梳理的順序,正序執行,2必然依賴于1,請不要随意跳過步驟。):

通過js-api runtime.permission.requestauthcode 來擷取code,需要傳入的參數為:corpid

如果全局緩存中拿不到access_token,請參考 js-api權限校驗的第一步,通過gettoken來擷取access_token。如果全局緩存中可以拿到access_token,那麼通過 /user/getuserinfo 接口,參數為 url?access_token=access_token&code=code(get)擷取userid,如果傳回有錯誤,那麼請檢視一下token是否過期,以及通過native擷取code時傳入的corpid是否是你企業的corpid。

免登最重要的就是要擷取使用者的userid,通過userid才可以調用其他跟使用者相關的open api。

對于這些繁重的業務步驟,在前端上封裝了一個好用的sdk,隻需要簡單的調用一個sdk api,就能一次性完成這些業務邏輯複雜的校驗,免登等流程,将前端的小宇宙釋放出來可以更關注使用者界面和企業的業務邏輯。

dingwebinterfacesdk目前提供了五個api:

getmicroapps 擷取在管理背景添加的全部應用

getuserinfo 擷取使用者詳細資訊

getuserid 擷取使用者userid

jsapioauth js-api權限校驗

前端的使用者界面使用了vue來建構,頁面中的内容,全部按元件的方式來拆分,你可以很友善的随意組合,來達到你想要實作的業務。

自定義企業首頁文檔

這些渲染邏輯都是通過資料來驅動,這也意味着它是可變的,隻要你自己的服務端來吐資料出來,就能很快的改變這些内容,比如營業日報,想變成“某某企業營業日報”,這些都可以輕松實作。

通過我們提供的模闆項目,你不需要關心整體架構,也不需要關心建構過程,通過兩個簡單的指令 npm run dev 和 npm run build就能輕松實作,不管是開發環境,還是生産環境,你可以更關注于企業首頁的使用者界面與業務邏輯。

繼續閱讀