在Office 365提供了webhooks的功能,讓外部系統可以與Office 365進行溝通,因此,只要能開發相容或是本身有相容webhooks定義,就可以讓外部系統把訊息傳遞到Office 365,因此,了解Office 365 webhook可接受的傳遞的格式就很重要。由於本身webhooks是透過Http協定,所以,在哪一種平台上去開發,就部會是障礙,而格式內容是使用json方式,這樣操作起來就更容易,在訊息Header要加上
我們發送一個簡單文字格式,例如:
這樣就可以把訊息傳到O365中,不過,只是單純這樣的訊息似乎也太寒酸,所以,在整個O365的json訊息中,又可以分為幾大塊模組,讓我們組出想要的訊息內容,只是每個欄位名稱必須符合O365定義,大概可以分成下面主要的幾大塊
- title
- Actions
- Sections
利用這些區塊就可以組出我們想要的資訊內容
title & text
title算是整個訊息的標題,不過,在不同服務內呈現樣貌會有一點不同,如果只有輸入下面這樣指令是不會Work的,若只想單純文字,只要用text就可以
還必須加上內容才可以,內容用text加入,不然是發送不出去
若是要在文字中加入超連結,這是可以,其寫法就跟寫Markdown的超連結語法相同,用[]()組合,像是
就可以做到具有超連結的文字
Actions
Actions的概念就像是在訊息中間帶入一個button,可以讓人去點擊,不過,實作上在某些開發編輯器或是服務上會認為這樣語法是有錯誤,主要是因為有用到@context和@type這兩個屬性會被視為錯誤的json格式,導致無法發送,這裡@type中可以用的選項,可以參考http://schema.org/ViewAction了解有那些可以用
Sections
前面使用text用來描述相關資訊,感覺似乎有一點點少,畢竟,某些時候這樣的資訊是不夠我們使用,因此,便會想要我擴充資訊內容,這時候就可以用Sections加上Fact的搭配,Sections內則使用activityTitle ,activitySubtitle,和activityText做摘要性的描述,詳細描述則透過Fact方式的Key & Value概念去放入必要的資訊,另外,在使用Sections時候,必須要先有title和text,只有單純sections是會發生錯誤
這時候,再配上Fact則可以填入更多的訊息,而Fact內是搭配name和value方式把資訊填入,且可以有多組的Fact,如果資訊過長,還會自動幫你摺疊訊息
利用webhook方式再搭配json資訊格式,看來要與Office 365做整合也就不是那樣困難了
參考資訊
1.https://dev.outlook.com/connectors/reference
2.http://schema.org/ViewAction