Workplace from Metaの提供は終了します。Workplaceは2025年8月31日まで今まで通りご利用いただけます。詳しくはヘルプセンターをご覧ください。

アクセス許可

概要

Workplaceシステム管理者は、アプリを作成して特定のアクセス許可を付与することにより、各統合に提供される機能を制御できます。各アプリには、そのアプリで利用可能なサービスを反映した名前を付けることができます。アプリには固有のアクセストークンとアクセス許可があり、それによってアプリが読み取り/書き込みを行える情報がコントロールされます。

このガイドでは、アプリとアクセス許可モデルについて詳しく説明します。

カスタム統合アプリを編集する際のアクセス許可のコントロール

使用できるアクセス許可

各Workplaceアプリに固有のアクセス許可のセットを付与することにより、グラフAPIおよびアカウント管理APIで使用できる機能のレベルをコントロールできます。

アプリを作成してアクセス許可を付与すると、そのアクセス許可はコミュニティ内のすべてのアカウントに適用されます。アカウント所有者は、アプリの機能を使用するために、アプリに追加のアクセス許可を付与する必要はありません。この点で、各ユーザーがログイン時にアプリに対して個別にアクセス許可を付与するFacebookのアクセス許可モデルとは異なります。

統合で使用できるアプリのアクセス許可の一覧と、その使用方法の概要を以下に示します。

アクセス許可説明

グループコンテンツの読み取り

選択したグループの投稿とコメントを読み取ります。

read_group

このアクセス許可は、選択したグループのすべてのコンテンツを取得する統合を作成する際に使用します。

グループ内のボットとして機能する統合の場合は、代わりにメンションボットアクセス許可を使用します。

グループコンテンツの管理

選択したグループの投稿とコメントを管理します。

write_group

このアクセス許可は、内部サービスから提供される週次レポートなどのコンテンツをグループに投稿する統合や、サービスステータス通知ボットを作成する際に使用します。

ユーザーのタイムラインの読み取り

グループメンバーによる投稿をグループメンバーのタイムラインに表示します。

read_user_feed

このアクセス許可は、次のような統合を作成する際に使用します。

  • グループメンバーのタイムラインからすべてのコンテンツを取得する
  • ユーザーのプロフィールのステータスフィールドの変更をサブスクリプション登録する

ユーザーのタイムラインの管理

グループメンバーのタイムラインに投稿したりコメントを書き込んだりします。

write_user_feed

このアクセス許可を使用すると、統合を使用してグループメンバーのタイムラインへの投稿を作成したり編集したりすることが可能になります。

メンションボット

投稿にメンションが付けられたら、投稿を確認してコメントに返信します。

bot_mention

このアクセス許可は、Workplaceグループ内のボットを作成するために使用します。

グループの管理

選択したグループとそのメンバーを作成、編集、削除します。

manage_group

このアクセス許可は、組織図の構造やプロジェクトグループに基づいてグループを自動生成し、グループにメンバーを挿入する統合を作成する際に使用します。

このアクセス許可を付与された統合が特定のグループを対象にしている場合、新しいグループは作成できません。

アカウントの管理

アカウント管理APIを使用して、アカウントのプロビジョニング、更新、停止を行います。

manage_accounts

このアクセス許可は、アイデンティティプロバイダーActive Directoryの同期ツール、カスタムのアカウント管理APIクライアントなどのアカウントプロビジョニングサービスとの統合に使用します。

このアクセス許可を有効にすると、[この統合を使用して追加された人をその都度Workplaceに自動的に招待します]アクセス許可を有効にできます。

バッジの管理

Workplaceコミュニティの参加者にバッジを授与します。

manage_badges

このアクセス許可を使用すると、統合によって次のことが可能になります。

  • メンバーにバッジを授与する
  • メンバーに授与されたバッジのリストを取得する
  • 使用可能なバッジのリストを取得する

ユーザーのメールアドレスの読み取り

グループメンバーのメールアドレスを表示します。

read_user_email

このアクセス許可を使用すると、Workplaceユーザーのアカウントに関連付けられたメールアカウントを取得できます。

仕事用プロフィールの読み取り

ユーザーのディレクトリ情報への読み取り専用アクセス。

read_user_work_profile

ユーザーのdepartment、division、organization、primary_address、primary_phone、title、genderの取得をアプリに許可します。

組織図の読み取り

ユーザーの上司と部下を確認するための読み取り専用アクセス。

read_user_org_chart

ユーザーの上司と部下の取得をアプリに許可します。

メンバーとのメッセージのやり取り

コミュニティのメンバーとの間でチャットメッセージの送受信を行います。

message

このアクセス許可は、ワークチャット内のボットを作成するために使用します。

すべてのメッセージの読み取り

コミュニティのすべてのメンバーからのチャットメッセージを読み取ります。

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アカウントのプロビジョニング、停止、削除を行うことができます。また、このアクセス許可により、active、email、name、hire_date、およびinvited memberフィールドを更新できます。

グループメンバーシップの読み取り

グループのメンバーのリストと、ユーザーがメンバーになっているグループのリストを取得します。

list_group_members

このアクセス許可を付与されたアプリは、特定のグループのメンバーのリストをクエリできます。さらに、ユーザーがメンバーになっているグループのリストも取得できます。

情報ライブラリコンテンツの管理

情報ライブラリ内の重要な会社情報を作成、編集、削除します。

manage_knowledge_library

このアクセス許可を付与されたアプリは、情報ライブラリ内のコンテンツを作成および変更できます。このアクセス許可を使用すると、統合によって次のことが可能になります。

  • カテゴリを作成/更新/削除する
  • カテゴリ内にサブカテゴリを作成する
  • カテゴリ内の写真/動画/ファイルを更新する
  • クイックリンクを作成/更新/削除する

情報ライブラリコンテンツの読み取り

情報ライブラリ内の重要な会社情報を読み取ります。

read_knowledge_library

このアクセス許可を付与されたアプリは、情報ライブラリのコンテンツにアクセスできます。このアクセス許可を使用すると、統合によって次のことが可能になります。

  • カテゴリのリストを取得する
  • 特定のカテゴリのコンテンツを取得する
  • クイックリンクのリストを取得する

社員データのエクスポート

現在の社員のリストと社員のアクティビティデータをCSV形式でエクスポートします。

export_employee_data

このアクセス許可を付与されたアプリは、すべてのWorkplaceユーザーをリストしたCSVファイルを生成するデータエクスポートジョブをスケジュールできます。このCSVには、ユーザーに関するデータと、Workplace機能の最近の使用状況の情報も含まれます。

グループチャットボット

ボットがグループチャットでやり取りできるようにします。

bot_group_chat

このアクセス許可を付与されたアプリは、グループチャットのメンバーとやり取りできます。このアクセス許可を使用すると、複数の人のグループチャットを作成したり管理したりする統合が可能になります。

このアクセス許可は、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アカウント管理APIWebhookで使用するアクセストークンが生成されます。

このアクセストークンは一度しか表示されないため、後ほどコードで使用できるように安全に保存しておくことが重要です。

カスタム統合アプリのトークンリセットフロー

Workplaceアプリのトークンは期限切れになることはなく、手動でリセットしない限り更新する必要はありません。特定のアプリで使用できるアクセス許可を編集しても、既存のトークンはそのまま機能し、新しいトークンの生成は不要です。

トークンを無効にする必要がある場合は、[アプリを編集]ダイアログの[アクセストークンをリセット]ボタンを使って、トークンをリセットできます。新しいトークンが生成されて表示され、既存のトークンは直ちに無効になります。

トークンのセキュリティ

アクセストークンは強力です。アクセストークンによって、Workplace上の会社のデータへのアクセスが可能になります。アプリを作成する際は、統合機能を完成させるために必要なアクセス許可を最小限にすることを検討し、不要なアクセス許可を付与しないでください。

トークンを保存する際や、コードリポジトリにトークンを追加する際は、間違った相手と共有しないように細心の注意を払う必要があります。

本番用のアクセストークンは、公開されているコードリポジトリには絶対にコミットしないでください。

API認証情報は自分のサーバー環境のみに保存して使用し、それらの値がコピーされたり、モバイルアプリやウェブブラウザークライアントといった別の場所に送信されたりしないように注意する必要があります。

統合にセキュリティレイヤーを追加するには、IPホワイトリストを追加します。そうすることにより、トークンの使用をホワイトリストに登録されたIPアドレスのサーバーのみに制限することができます。

IPホワイトリストを追加して、トークンの使用を特定のサーバーに制限し、app secret証明を要求する

使用されていないアクセス許可の自動削除

特定のアクセス許可を使用する呼び出しがカスタム統合によって30日間行われなかった場合、そのアクセス許可は削除されます。この処理がカスタム統合で一度行われると、この削除プロセスを停止するオプションが使用できるようになります。

有効なWebhookサブスクリプションが設定されている場合、この処理によって送信されたWebhookは、該当のアクセス許可の使用としてカウントされます。

アクセス許可の自動削除のコントロール

app secret証明

Workplaceのアクセストークンは期限切れになりません。カスタム統合では、セキュリティレイヤーを追加するために、app secret証明が必要になる場合があります。[App Secret証明をオンにする]オプションを有効にすると、API呼び出しはサーバー側のコードからのみ行われるようになり、API呼び出しを行う際にはアクセストークンとともに有効期限付きのapp secret証明が必要になります。

有効期限付きのapp secret証明を生成するには、トークンとUNIXタイムスタンプをパイプ記号|で区切って連結し、連結した文字列のSHA-256ハッシュを作成して、app secretをキーとして使用する必要があります。PHPの例を次に示します。

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

オペレーティングシステムとプログラミング言語によっては、タイムスタンプが浮動小数点数型で返される場合があります。必ず整数値に変換してからapp secret証明を生成してください。また、プログラミング言語によっては、ハッシュがダイジェストオブジェクトとして作成されます。ハッシュは必ず16進数オブジェクトとして表現してください。

app secret証明を使用してAPI呼び出しを行うには、生成されたハッシュをappsecret_proofパラメーターで渡します。その際、app secretをハッシュ化したときに使用したタイムスタンプに設定したappsecret_timeと、アクセストークンも一緒に渡します。

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

タイムスタンプが設定されたapp secret証明は、5分経過すると期限切れと見なされます。そのため、グラフAPI呼び出しを行うたびに、インラインで新しい証明を生成することをおすすめします。

Postmanを使ったAPI機能の処理

Postmanは、ウェブAPIを操作するツールとして広く使われています。Postmanを使うとWorkplace APIを簡単に処理できますが、$appsecret_proofパラメーターを使用する場合は少々厄介です。この値は計算で求める必要があり、5分後に有効期限が切れます。したがって、リクエスト時にPostmanでこの値を生成できれば、処理が簡単になります。実際に、Postmanはリクエスト前スクリプトとパラメーターの機能を使用して、この処理を行うことができます。出発点として、次のスクリプトを使用できます。

// 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) リクエスト前スクリプトで算出した3つのパラメーターを追加します。