釘釘開發筆記(一)


釘釘開發分為:1、移動客戶端。2、PC端。3、服務端。三個平台的開發。

1、移動端:面對釘釘手機用戶和企業用戶。

2、同上主要面向PC端的用戶和企業。

3、服務端,用於用戶和企業內部管理的平台方向,例如OA網站。

 

本人主要從事移動端和PC端的開發,所以,本筆記主要記錄在這些問題中遇見的問題和困難,希望對大家有所幫助!

 

開發流程:

一、免登流程圖   點擊查看步驟

 

二、步驟詳細:

步驟1:獲取CorpID、CorpSecret(在企業釘釘微應用設置中獲取)

 

步驟2:獲取AccessToken。

開發者在調用開放平台接口前需要通過CorpID和CorpSecret獲取AccessToken。獲取AccessToken的方法是向 

https://oapi.dingtalk.com/gettoken?corpid=id&corpsecret=secrect GET請求。

 

 

步驟3獲取jsapi_ticket(服務器中調用,用以生成可用的ticket)點擊查看官方文檔 

 

獲取jsapi_ticket

企業在使用微應用中的JS API時,需要先從釘釘開放平台接口獲取jsapi_ticket生成簽名數據,並將最終簽名用的部分字段及簽名結果返回到H5中,JS API底層將通過這些數據判斷H5是否有權限使用JS API。

請求說明

Https請求方式:GET

https://oapi.dingtalk.com/get_jsapi_ticket?access_token=ACCESS_TOKEN

 

 

步驟4:簽名生成算法

開發者在web頁面使用釘釘容器提供的jsapi時,需要驗證調用權限,並以參數signature標識合法性

簽名生成的規則:

List keyArray = sort(noncestr,timestamp,jsapi_ticket,url);

String str = assemble(keyArray);

signature = sha1(str);

 

參與簽名的字段包括在上文中獲取的jsapi_ticket,noncestr(隨機字符串,自己隨便填寫即可),timestamp(當前時間戳,具體值為當前時間到1970年1月1號的秒數),url(當前網頁的URL,不包含#及其后面部分,需要對url中query部分做一次urldecode)。例如:

noncestr=Zn4zmLFKD0wzilzM

jsapi_ticket=mS5k98fdkdgDKxkXGEs8LORVREiweeWETE40P37wkidkfksDSKDJFD5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcKIDU8l

timestamp=1414588745

url=//open.dingtalk.com

注意:若頁面url為http://abc.com?url=http%3A%2F%2Fabc.com%2somewhere,則用於生成簽名的url應對query部分做一次urldecode,正確結果應為http://abc.com?url=http://abc.com/somewhere

步驟1. sort()含義為對所有待簽名參數按照字段名的ASCII 碼從小到大排序(字典序)

步驟2. assemble()含義為根據步驟1中獲的參數字段的順序,使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字符串

步驟2. sha1()的含義為對在步驟2拼接好的字符串進行sha1加密。

 

 

 

步驟5:獲取免登用戶信息 擊查看官方文檔

 

CODE換取用戶身份

企業應用的服務器在拿到CODE后,需要將CODE發送到釘釘開放平台接口,如果驗證通過,則返回CODE對應的用戶信息。**此接口只用於免登服務中用來換取用戶信息**

求說

Https請求方式: GET

https://oapi.dingtalk.com/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE

 

 

 

 

 


免責聲明!

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



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