钉钉开发笔记(一)
釘釘開發(fā)分為:1、移動客戶端。2、PC端。3、服務(wù)端。三個平臺的開發(fā)。
1、移動端:面對釘釘手機用戶和企業(yè)用戶。
2、同上主要面向PC端的用戶和企業(yè)。
3、服務(wù)端,用于用戶和企業(yè)內(nèi)部管理的平臺方向,例如OA網(wǎng)站。
?
本人主要從事移動端和PC端的開發(fā),所以,本筆記主要記錄在這些問題中遇見的問題和困難,希望對大家有所幫助!
?
開發(fā)流程:
一、免登流程圖 ? 點擊查看步驟
?
二、步驟詳細:
步驟1:獲取CorpID、CorpSecret(在企業(yè)釘釘微應(yīng)用設(shè)置中獲取)
?
步驟2:獲取AccessToken。
開發(fā)者在調(diào)用開放平臺接口前需要通過CorpID和CorpSecret獲取AccessToken。獲取AccessToken的方法是向?
https://oapi.dingtalk.com/gettoken?corpid=id&corpsecret=secrect?GET請求。
?
?
步驟3:獲取jsapi_ticket(服務(wù)器中調(diào)用,用以生成可用的ticket)點擊查看官方文檔?
?
獲取jsapi_ticket
企業(yè)在使用微應(yīng)用中的JS API時,需要先從釘釘開放平臺接口獲取jsapi_ticket生成簽名數(shù)據(jù),并將最終簽名用的部分字段及簽名結(jié)果返回到H5中,JS API底層將通過這些數(shù)據(jù)判斷H5是否有權(quán)限使用JS API。
請求說明
Https請求方式:GET
https://oapi.dingtalk.com/get_jsapi_ticket?access_token=ACCESS_TOKEN
?
?
步驟4:簽名生成算法
開發(fā)者在web頁面使用釘釘容器提供的jsapi時,需要驗證調(diào)用權(quán)限,并以參數(shù)signature標識合法性
簽名生成的規(guī)則:
List keyArray = sort(noncestr,timestamp,jsapi_ticket,url);
String str = assemble(keyArray);
signature = sha1(str);
?
參與簽名的字段包括在上文中獲取的jsapi_ticket,noncestr(隨機字符串,自己隨便填寫即可),timestamp(當前時間戳,具體值為當前時間到1970年1月1號的秒數(shù)),url(當前網(wǎng)頁的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應(yīng)對query部分做一次urldecode,正確結(jié)果應(yīng)為http://abc.com?url=http://abc.com/somewhere
步驟1. sort()含義為對所有待簽名參數(shù)按照字段名的ASCII 碼從小到大排序(字典序)
步驟2. assemble()含義為根據(jù)步驟1中獲的參數(shù)字段的順序,使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字符串
步驟2. sha1()的含義為對在步驟2拼接好的字符串進行sha1加密。
?
?
?
步驟5:獲取免登用戶信息?擊查看官方文檔
?
通過CODE換取用戶身份
企業(yè)應(yīng)用的服務(wù)器在拿到CODE后,需要將CODE發(fā)送到釘釘開放平臺接口,如果驗證通過,則返回CODE對應(yīng)的用戶信息。**此接口只用于免登服務(wù)中用來換取用戶信息**
請求說明
Https請求方式: GET
https://oapi.dingtalk.com/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/tig666666/p/6115770.html
總結(jié)
- 上一篇: mui 页面滚动
- 下一篇: [js高手之路]原型对象(prototy