1. 程式人生 > 其它 >c#+Vue獲取釘釘免登碼後微應用新增水印

c#+Vue獲取釘釘免登碼後微應用新增水印

這幾天公司需要使用釘釘傳送訊息給個人後加上該登入人員的水印,不閒聊直接開始。

首先需要登入釘釘開發者後臺獲取到你建立的微應用的引數,應用appKey和應用appsecret來獲取token,必須使用token和免登code後才能獲取到該使用者資訊,這裡我沒有許可權看公司釘釘的後臺沒辦法截圖,可以參考釘釘給的文件:釘釘免登流程

前端獲取code免登碼,該免登碼5分鐘內有效,只能使用一次,獲取到後通過vue的axios傳給後端,這裡的waterMark.Set()方法是打水印。

首先安裝釘釘的jsapi

import * as dd from "dingtalk-jsapi";
Vue背景打水印方法

let watermark = {} let setWatermark = (str) => { let id = '1.23452384164.123412415' if (document.getElementById(id) !== null) { document.body.removeChild(document.getElementById(id)) } let can = document.createElement('canvas') can.width = 150 can.height = 120 let cans = can.getContext('2d') cans.rotate(
-20 * Math.PI / 180) cans.font = '20px Vedana' cans.fillStyle = 'rgba(200, 200, 200, 0.60)' cans.textAlign = 'left' cans.textBaseline = 'Middle' cans.fillText(str, can.width / 3, can.height / 2) let div = document.createElement('div') div.id = id div.style.pointerEvents = 'none' div.style.top
= '70px' div.style.left = '0px' div.style.position = 'fixed' div.style.zIndex = '100000' div.style.width = document.documentElement.clientWidth - 100 + 'px' div.style.height = document.documentElement.clientHeight - 100 + 'px' div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat' document.body.appendChild(div) return id } // 該方法只允許呼叫一次 watermark.set = (str) => { let id = setWatermark(str) setInterval(() => { if (document.getElementById(id) === null) { id = setWatermark(str) } }, 500) window.onresize = () => { setWatermark(str) } } export default watermark;

後端獲取code免登碼後獲取當相關人員的名稱傳給前端打水印。

從頭到尾其實就是這麼簡單,但是釘釘開發有個最坑爹的地方,你必須使用釘釘RC版來除錯該功能,才能知道是否獲取成功。除錯工具下載地址:https://developers.dingtalk.com/document/resourcedownload/h5-debug

,

這裡微應用的開啟頁面需要在釘釘控制後臺填寫首頁地址,如果你已經部署到伺服器上,請將你的專案打包並部署該站點地址,之後就完成了根據免登獲取姓名後將水印打上了。