如何將釘釘集成到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:發消息給某個部門的所有成員,該屬性與釘釘用戶是並的關係,不同部門之間也用|分割

消息內容:定義消息的正文內容

定時結果訪問連接:勾選的話會在消息正文最後加上定時生成的結果連接,點擊後就可以直接打開定時結果;不選的話則只發送純文本消息。

定時任務設置好後,比如任務每天都會執行,每次執行後就會推送消息給對應的成員,效果如下:

 

點擊連接,就可以看到定時生成的結果。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章