本文主要講述了在FineReport移動端中釘釘如何集成設計器的插件從而實現企業應用。 ...
報表伺服器
安裝釘釘管理插件後,打開報表管理平臺,管理系統下會增加釘釘管理節點,釘釘相關的配置管理都將會放在這個節點中去配置:
同時,設置定時任務的最後一步輸出設置中,會增加推送釘釘消息:
釘釘企業應用
管理員登錄釘釘企業號,進入微應用設置,需要關註的信息有:
CorpID:是企業在釘釘中的標識,每個企業擁有一個唯一的CorpID;
CorpSecret:是企業每個應用的憑證密鑰
- 釘釘管理
登錄FineReport管理平臺,點擊管理系統>釘釘管理節點:將釘釘中的CorpID和CorpSecret分別填到釘釘企業號ID和管理組憑證密碼中,設置Token獲取路徑,可以自定義獲取的url,如果不寫則採用內置的方式獲取,保存,如下圖:
- 釘釘插件自定義token獲取
釘釘提供的獲取token介面本身有缺陷:
1)釘釘提供的介面,使用corpid和secret獲取token,預設不會緩存,但是釘釘提倡做token緩存,2小時內可以重覆使用,這樣減少對釘釘伺服器的訪問,以免出現問題;
2)釘釘中集成多個應用的話,如果多個應用都會用到corpid和secret獲取token,如果某個應用緩存了token,就會衝突
例如:應用a,做了緩存,第一次訪問後獲取到token1,應用b使用會重新取token2,此時應用a還是用的token就無法訪問了。
針對這種情況,處理方式是所有應用統一到一個地方去取token,此時需要設置自定義token的獲取地址
在釘釘插件中,釘釘管理>基本信息>設置Token獲取路徑,可以自定義獲取的url,如果不寫則採用內置的方式獲取
Token獲取介面規則:返回json類型的數據,{access_token:"xxxxx", jsapi_ticket:"xxxxx"}
釘釘管理後臺創建FineReport報表微應用時,例如http://www.finereporthelp.com:8181/app2/ReportServer?op=fs&corpid=$CORPID$,後面要加上參數&corpid=$CORPID$,這樣後臺會獲取到cropid,然後取到釘釘userid,做單點登錄;
- 釘釘用戶與報表用戶關聯
按照釘釘提供的方法,讀取釘釘通訊錄的成員,需要的欄位有uesrid,name,department進入FineReport報表管理平臺fs,點擊釘釘管理節點,除了基本信息外,增加了釘釘成員管理,點擊效果如下:
表格中會自動讀取釘釘企業號通訊錄中的所有成員,並且在每次打開該頁面時刷新為最新的;預設釘釘成員與報表用戶相同,因為大部分情況下,釘釘成員名和報表用戶名是統一的;
如果您的釘釘成員名與報表用戶名是不一樣的,此時,可以取消勾選釘釘成員與報表用戶相同設置,此時報表用戶名,可以將釘釘成員與報表用戶進行關聯,如下圖:
- 單點登錄
釘釘提供免登服務,與微信類似,通過code可以獲取當前取號的userid,獲取到userid後,通過關聯關係自動登錄報表後臺
- 消息推送
開發伺服器可以主動的發送消息給企業成員,比如使用FineReport定時器生成報表後,發送消息給相應的人員進行查看。進入FineReport管理平臺,添加定時任務:
到輸出設置這步,比如我們將定時生成的結果掛在其他這個目錄下麵,並且命名為釘釘文檔測試:
通知與存檔選擇推送釘釘消息,企業應用(AgentID)需要根據釘釘管理里的進行填寫,例如下設置,這樣定時任務結束後,這個釘釘成員可以收到消息
定時生成結果的文件名:對應發送消息的標題名
企業應用AgentID:發消息至哪個應用
釘釘用戶:發消息給哪些成員,下拉框中會自動讀取釘釘通訊錄中的所有成員,多個成員之間用|分割,比如Jane|Saber
部門ID:發消息給某個部門的所有成員,該屬性與釘釘用戶是並的關係,不同部門之間也用|分割
消息內容:定義消息的正文內容
定時結果訪問連接:勾選的話會在消息正文最後加上定時生成的結果連接,點擊後就可以直接打開定時結果;不選的話則只發送純文本消息。
定時任務設置好後,比如任務每天都會執行,每次執行後就會推送消息給對應的成員,效果如下:
點擊連接,就可以看到定時生成的結果。