權限

總覽

作為 Workplace 系統管理員,您可以藉由建立應用程式並授予其特定權限,以控制提供給各整合工具的功能。為每個應用程式命名時,可以反映其所啟用的服務。應用程式具有專屬存取權杖和權限,可以控制該應用程式能夠讀取或寫入哪些資訊。

本指南將進一步詳細說明應用程式和權限模型。

編輯自訂整合應用程式時的權限控制項

可用的權限

您可以為每個 Workplace 應用程式授予一組專屬的權限,以控制其對圖形 API帳號管理 API 的可用功能層級。

當您建立應用程式並授予權限時,那些權限會套用至您社群中的每個帳號。帳號所有人不需要為了享有應用程式的功能,而授予額外權限給應用程式。這不同於 Facebook 上的權限模型,在 Facebook 上,每個用戶需要在登入時個別授予權限給應用程式。

以下是可用於整合工具的應用程式權限完整清單,並提供用法說明總覽。

權限說明

讀取社團內容

讀取所選社團中的貼文和留言。

read_group

若要建置可從特定社團擷取所有內容的整合工具,請使用此權限。

如果您的整合工具將會在社團中做為 Bot(機器人程式),則改用提及 Bot 權限。

管理社團內容

管理所選社團中的貼文和留言。

write_group

若要建置可發佈內容至社團的整合工具,例如內部服務週報,或服務狀態通知 Bot(機器人程式),請使用此權限。

讀取用戶動態時報

查看社團成員在自己動態時報上發佈的貼文

read_user_feed

若要建置可執行下列作業的整合工具,請使用此權限:

  • 從社團成員的動態時報擷取所有內容
  • 訂閱用戶個人檔案中的狀態欄位變更

管理用戶動態時報

在任何社團成員的動態時報上貼文及留言

write_user_feed

使用此權限可讓整合工具能夠在社團成員的動態時報上建立或編輯貼文。

提及 Bot(機器人程式)

在貼文中被提及的地方,能夠查看貼文及回覆留言。

bot_mention

使用此權限可在 Workplace 社團中建置 Bot(機器人程式)

管理社團

建立、編輯或移除所選社團及其成員。

manage_group

若要建置可自動產生社團,並根據組織結構圖結構或專案社團填入社團成員的整合工具,請使用此權限。

如果具有此權限的整合工具僅適用於特定社團,則不能建立新社團。

管理帳號

透過帳號管理 API 來佈建、更新或停用帳號。

manage_accounts

針對具有帳號佈建服務(例如身分識別服務供應商Active Directory 同步工具或自訂帳號管理 API 用戶端)的任何整合工具,請使用此權限。

當您啟用此權限時,將能夠選擇是否啟用「用戶透過此整合工具加入後,立即自動邀請他們使用 Workplace」權限。

管理徽章

頒發徽章給 Workplace 社群中的用戶。

manage_badges

使用此權限可讓整合工具能夠執行下列作業:

  • 頒發徽章給成員
  • 取得已頒發給成員的徽章清單
  • 取得可用的徽章清單

讀取用戶電子郵件

查看任何社團成員的電子郵件地址。

read_user_email

此權限可讓您擷取與 Workplace 用戶帳號相關聯的電子郵件帳號。

讀取工作個人檔案

對用戶目錄資訊的唯讀存取權。

read_user_work_profile

可讓應用程式擷取用戶的部門、單位、組織、主要地址、主要電話、職位和性別。

讀取組織結構圖

對用戶上司和下屬的唯讀存取權。

read_user_org_chart

可讓應用程式擷取用戶的上司和下屬。

傳送訊息給任何成員

與社群的任何成員互相傳送及接收聊天訊息。

message

使用此權限可在 Work Chat 中建置 Bot(機器人程式)

讀取所有訊息

讀取社群中任何成員的聊天訊息。

read_all_messages

使用此權限可啟用規範整合工具,以監控 Workplace 聊天使用情況。

刪除聊天訊息

delete_messages

使用此權限可讓應用程式能夠從用戶的對話中刪除聊天訊息(例如為了實施留存政策)。

讀取帳號安全記錄

帳號安全事件的詳細存取資訊,包括嘗試登入次數和重設密碼要求。

receive_security_logs

使用此權限可啟用規範整合工具,以監控 Workplace 聊天使用情況。

登出

將成員從所有有效連網登出

logout

使用此權限可將用戶從 Workplace 登出

建立連結預覽

在 Workplace 中分享的連結即時預覽。

link_unfurling

具有此權限的應用程式能夠針對在 Workplace 中分享的連結產生驗證預覽

管理工作個人檔案

讀取及更新 Workplace 中的工作個人檔案。

manage_profiles

具有此權限的應用程式會合併 read_user_work_profile 和 read_user_org_chart 的讀取權限。具有此權限的應用程式還可以更新帳號資訊(例如:名字、部門、單位、職位、組織、電話)

佈建用戶帳號

在 Workplace 中佈建帳號。

provision_accounts

具有此權限的應用程式能夠佈建、停用及刪除(未被認領的)Workplace 帳號。此權限也允許更新在線上、電子郵件、名字、僱用日期和受邀成員的欄位。

讀取社團成員資格

列出社團成員,以及列出用戶所屬的社團

list_group_members

具有此權限的應用程式能夠查詢特定社團的成員名單。此外,也可以列出用戶所屬的社團。

管理知識資料庫內容

建立、編輯及刪除知識資料庫中的重要公司資訊

manage_knowledge_library

具有此權限的應用程式能夠建立及修改知識資料庫中的內容。使用此權限可讓整合工具能夠執行下列作業:

  • 建立/更新/刪除類別
  • 在類別中建立子類別
  • 更新類別的相片/影片/檔案
  • 建立/更新/刪除快速連結

讀取知識資料庫內容

讀取知識資料庫中的重要公司資訊

read_knowledge_library

具有此權限的應用程式能夠存取知識資料庫中的內容。使用此權限可讓整合工具能夠執行下列作業:

  • 取得類別清單
  • 取得特定類別的內容
  • 取得快速連結清單

匯出員工資料

以 CSV 格式匯出目前員工及其動態資料的清單。

export_employee_data

具有此權限的應用程式能夠排定資料匯出工作,以產生列出所有 Workplace 用戶的 CSV 檔案。CSV 也會包含用戶的相關資料,以及用戶最近使用 Workplace 功能的相關資訊。

群組聊天 Bot(機器人程式)

讓 Bot(機器人程式)能夠在群組聊天中互動。

bot_group_chat

具有此權限的應用程式可讓 Bot(機器人程式)能夠在群組聊天中與成員互動。使用此權限可讓整合工具能夠建立或管理多人群組聊天。

此權限依據 message 權限而定。

管理問卷調查

建立、更新、刪除及讀取問卷調查配置

manage_surveys

具有此權限的應用程式能夠建立、更新、刪除及讀取問卷調查配置。

讀取問卷調查

讀取問卷調查配置,以及接收有關問卷調查的 Webhook 更新

read_surveys

具有此權限的應用程式能夠讀取問卷調查配置,以及接收有關問卷調查的 Webhook 更新。

讀取問卷調查

讀取問卷調查配置,以及接收有關問卷調查的 Webhook 更新

read_surveys

具有此權限的應用程式能夠讀取問卷調查配置,以及接收有關問卷調查的 Webhook 更新。

讀取用戶群組

讀取用戶群組

read_people_sets

具有此權限的應用程式能夠查看動態用戶群組配置,以及訂閱有關用戶群組的更新

管理用戶群組

管理用戶群組

manage_people_sets

具有此權限的應用程式能夠在 Workplace 社群中建立、更新及刪除用戶群組

讀取重要貼文

讀取重要貼文

read_important_posts

可讓整合工具讀取重要貼文促銷活動的相關資訊,包括目前使用中和過期的促銷活動。

管理重要貼文

管理重要貼文

manage_important_posts

可讓整合工具將社團貼文標示為重要,使其顯示在動態消息最上方,並允許永久停止重要貼文促銷活動。

移除個人檔案資訊

移除已停用之用戶的個人資訊。

remove_profile_information

可讓整合工具在 Workplace 上移除已停用之用戶的個人檔案欄位,例如名稱和大頭貼照。

群組層級權限

針對某些權限,可以限制在特定群組啟用整合工具。這樣可讓您將整合工具的存取權限制在您想要公開的內容。

例如,您可以允許發佈提醒的整合工具只在團隊自己的社團中發佈,或是讓員工應用程式整合工具只讀取特定公開社團中的內容。

若要為自訂整合工具指定群組層級權限,請使用「編輯整合」對話方塊中的「群組存取權限」面板。

為此整合工具啟用群組層級權限。

群組層級權限會套用至下列權限:

  • 讀取社團內容 - 讀取所選社團中的貼文、留言和成員個人檔案
  • 管理社團內容 - 管理所選社團中的貼文和留言
  • 管理社團 - 編輯或移除所選社團及其成員

您可以配置整合工具,讓群組層級權限能夠套用至所有社團、系統管理員選擇的特定社團,或是讓社團管理員決定是否要為其社團啟用

管理員安裝流程

當啟用讓社團管理員決定是否要為其社團啟用時,社團管理員會在管理社團畫面下方看到新的整合工具頁籤,可讓他們為自己的社團啟用整合工具。

現在可讓社團管理員啟用的範例應用程式。

應用程式權杖和使用情形

當您為 Workplace 建立新的應用程式時,會產生存取權杖,以用於圖形 API帳號管理 APIWebhooks

此存取權杖只會顯示一次,所以務必將權杖安全儲存,以供稍後用於程式碼。

自訂整合應用程式的權杖重設流程

Workplace 應用程式權杖永不過期,而且除非手動重設過,否則不需要重新整理。如果您編輯可用於指定應用程式的權限,現有的權杖仍有效,不需要產生新的權杖。

如果您需要使權杖失效,可以透過編輯應用程式對話方塊中的重設存取權杖按鈕來重設權杖。新的權杖將會產生並顯示,而現有的權杖會立即失效。

權杖安全

存取權杖的功能強大,能夠授予在 Workplace 上存取您公司資料的權限。建立應用程式時,請考慮授予完成整合功能所需的最少權限,而不要授予任何不必要的權限。

在儲存權杖或將權杖加入程式碼儲存庫時,應格外小心,確保不會將權杖與非預期的對象分享。

切勿將生產存取權杖提交到公開程式碼儲存庫中。

您必須僅限在自己的伺服器環境中儲存及使用您的 API 憑證,並確保這些值絕不會被複製或傳輸到其他地方,例如行動應用程式或網頁瀏覽器用戶端。

若要為整合工具多加一層安全防護,您應該要加入 IP 許可清單,以限制只能將權杖用於 IP 位址許可清單上的伺服器。

加入 IP 許可清單,以限制只能將權杖用於指定的伺服器,且需要應用程式密鑰證明

自動移除未使用的權限

如果自訂整合工具在 30 天內未使用特定權限進行呼叫,則會移除該權限。在自訂整合工具發生過一次這種情況後,就會出現可用來停止此移除程序的選項。

如果已設定有效的 Webhook 訂閱,則因此傳送的 Webhooks 會視為使用相關權限。

用於自動移除權限的控制項

應用程式密鑰證明

Workplace 的存取權杖不會過期。自訂整合工具可能需要應用程式密鑰證明來多加一層安全防護。啟用「需要應用程式密鑰證明」選項可確保 API 呼叫只會由伺服器端程式碼發出,發出 API 呼叫時,除了存取權杖之外,還需要會過期的應用程式密鑰證明。

若要產生會過期的應用程式密鑰證明,您需要將權杖與 Unix 時間戳記串接,並以豎線符號 | 分隔,然後使用應用程式密鑰做為金鑰,建立該字串的 SHA-256 雜湊。以下是以 PHP 撰寫的範例:

$appsecret_proof = hash_hmac('sha256', $access_token.'|'.time(), $app_secret); 

有些作業系統和程式設計語言會傳回浮點數值的時間戳記。請務必先轉換成整數值,再計算應用程式密鑰證明。有些程式設計語言會將雜湊建立成摘要物件。請務必以十六進位物件來表示雜湊。

若要發出含應用程式密鑰證明的 API 呼叫,請使用 appsecret_proof 參數,加上 appsecret_time(設為將應用程式密鑰雜湊處理時使用的時間戳記)和存取權杖,以傳遞所產生的雜湊。

GET https://graph.facebook.com/v2.9/community/groups?
&access_token={access-token}
&appsecret_proof={appsecret_proof}
&appsecret_time={appsecret_time}

加上時間戳記的應用程式密鑰證明會在 5 分鐘後視為過期,所以建議您在發出每個圖形 API 呼叫時,各產生新的內嵌證明。

探索搭配 Postman 使用的 API 功能

Postman 是處理網頁 API 時常用的工具。您可能會覺得使用 Postman 來探索 Workplace API 很方便,但是 $appsecret_proof 參數會帶來複雜性,由於這個值必須納入計算,並且會在五分鐘後過期,因此如果 Postman 可以在要求時產生該值,事情就會變得比較簡單。事實上,Postman 可以使用它的 Prerequests Scripts 和 Params 功能來做到這一點。這個指令碼可以用來做為起點:

// Add to Postman's Pre-request Script Tab
var access_token = "replace-me";
var app_secret = "replace-me";
var time = (new Date().getTime()/1000|0);
postman.setEnvironmentVariable("access_token", access_token)
postman.setEnvironmentVariable("appsecret_time", time);
postman.setEnvironmentVariable("appsecret_proof", CryptoJS.HmacSHA256(access_token + '|' + time, app_secret));
1)建立使用中環境(預設沒有使用中環境),然後 2)加入這三個參數,您的預先要求指令碼會計算這些參數。