這篇繼續介紹BUILD大會里的內容:新的Teams API權限。這些新的權限讓開發者可以更加細粒度的設置權限。
之前有些開發人員有問過我,為什么Graph API的權限這么多,為什么不針對Teams弄一個總的權限,這樣不是更加簡單嗎?是,這樣可以簡化開發人員的工作,但是我們需要考慮到當一個企業IT安裝teams app的時候,他/她會仔細審核你這個app所需要的權限,如果你app可以刪除teams里的消息,甚至是可以刪除一個team或者channel,我相信很多IT管理員就會很猶豫。所以我們作為一個teams app開發,我們應該仔細設置權限,應該只申請你app真正需要的權限,要求的權限越少,你的app就會有更多機會被安裝到更多的企業中。
讓我們來看一下幾個最新的permission,這些permission在我寫這篇文章的時候還是private preview,不過我相信很快就會public。
-
ChannelMessage.Delete?這個權限允許app刪除一個頻道Channel里的消息Message,這個權限需要管理員審核,并且不支持Microsoft Account。所謂的Microsoft Account是指非AzureAD的企業賬號。
-
ChannelMessage.Edit?這個權限允許app修改一個頻道Channel里的消息Message,同樣,這個權限也需要管理員審核,并且也不支持Microsoft Account。
-
Chat.Send?這個權限允許app以當前登入用戶的身份來發送消息,這個消息有一定限制:目前允許的是一對一的對話,或者群聊。這個權限不需要管理員審核,并且不支持Microsoft Account。
-
Chat.Send.All?這個權限和前面一個權限十分類似,區別在于這個權限是一個Application permissions,上面這個是Delegated permissions。這個權限允許app以一個用戶的身份來發送消息,發送到一對一的對話,或者群聊。這個權限也不需要管理員審核,并且不支持Microsoft Account。
-
Teams.Create?這個權限允許app創建team,它同時支持Delegated permission和Application permission。這個權限需要管理員審核,并且不支持Microsoft Account。
-
TeamsActivity.Read?這個權限允許app讀取登入用戶的Activity feed。它不需要管理員審核,并且不支持Microsoft Account。
-
TeamsActivity.Read.All?和上面權限類似,這個權限是Application permission,可以讀取任何一個用戶的activity feed。因為可以讀取任何用戶的信息,所以它需要管理員審核,并且不支持Microsoft Account。
-
TeamsActivity.Send?這個權限允許app可以給任何用戶發送activity,它需要管理員審核,并且不支持Microsoft Account。
參考:Microsoft Graph permissions reference