企业版移动端钉钉对接
企業版手機端釘釘對接:
作為后臺我把釘釘理解成了一個特殊的瀏覽器。
dingding文檔https://open-doc.dingtalk.com/?spm=a219a.7629140.0.0.o6fMoq 這個文檔的開發者接入里有對應的接口,也就是你訪問對應url,dingding會回復對應的信息,操作dingding控件的接口。
第一次dingding對接一頭霧水,總結了幾個問題:
怎么能夠操作手機上的dingding軟件呢?
dingding提供了一個JSAPI來操作dingding軟件,而這個JSAPI我把它理解成自己封裝的js代碼,他需要對應的框架提供支持,這個框架就是dingtalk.js(文檔里都有)。也就是說dingding如果先發起一個請求到后臺,如果后臺回復對應的JSAPI就可以操作dingding了。
JSAPI:
操作dingding分成dd.config dd.ready dd.error三個部分,而jsapi是放到dd.ready里并且使用jsapi需要先用dd.config來進行簽名校驗。
dingding提供了很多個接口在API列表總覽里
免密登陸公司的后臺服務器的過程:
1.在dingding后臺創建應用,配置跳轉地址/dlogin/
2.自己的服務器后臺接收到請求,先利用自己封裝的sdk獲取前端校驗需要使用的簽名信息假設叫他config,將config添加到H5頁面dlogin.html上,返回dlogin.html。在返回的dlogin.html中 ,頁面上要加載dingtalk,目的是使用JSAPI:先利用dd.config完成簽名校驗,這樣才能使用dd.ready里面的jsapi,然后用dd.runtime.permission.requestAuthCode獲取code的值。
3.如果通過dlogin.html里嵌入的dd.runtime.permission.requestAuthCode獲取到code值后,那么后臺就可以拿著code發送get請求 https://oapi.dingtalk.com/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
來獲取用戶在dingding服務器里存儲的信息了,可是我們自己的服務器后臺怎么拿到這個url的code呢,可以讓成功獲得code的信息的dd.runtime.permission.requestAuthCode在成功的情況下向后臺發送 /user/getuserinfoaccess_token=ACCESS_TOKEN&code=CODE 請求,后臺就可以拿到這個url的后半部分了。在重新組裝就可以了。
4.后臺拿到url之后就可發送請求,獲得用戶的信息了,在自己的服務器上首先要添加ding_id和is_exist 兩個字段,在請求的返回值當中就有ding_id和is_exist的信息,來判斷哪個用戶登錄了。之后就是正常的登陸和返回和跳轉到首頁了。
python的dingding的sdk 主要目的是組織參數,生成簽名信息:
1,在init中應該有需要的參數,在創建應用的時候就獲取的agentId,cropId,cropSecret
2,獲取access_token: 通過get請求 https://oapi.dingtalk.com/gettoken?corpid=id&corpsecret=secrect
得到access_token
3,獲取ticket: 通過get請求 https://oapi.dingtalk.com/get_jsapi_ticket?access_token=ACCESS_TOKE
得到ticket
4,根據參數ticket,nonceStr(隨機數),timeStamp(時間戳),url應用設置訪問的url,生成signature:jsapi_ticket=%s&noncestr=%s×tamp=%s&url=%s根據順序組成字符串,sha1加密,轉換16進制。
實際在dd.config校驗是需要的參數有nonceStr, corpId,timestamp,signature,agentId
發送dingding消息:當有請假信息或者有審批信息的狀態時,需要給相關的人員發送dingding消息。
可以用發送企業消息接口 https://oapi.dingtalk.com/message/send?access_token=ACCESS_TOKEN
這個接口支持多種數據類型text、image、voice、file、link、OA、markdown消息類型 文檔都有說明。
1,組織參數,2,組織url,3,發送請求。
總結
以上是生活随笔為你收集整理的企业版移动端钉钉对接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇报就是生产力:PPT使用技巧总结
- 下一篇: Codeforces 841B - Go