(57)【要約】【課題】本開示の実施形態は、改良された、ネットワーク接続されたコンピューティングデバイスの、より効率的な、かつより安定したシステムを提供する方法、システム、装置、及びコンピュータプログラム製品を提供する。【解決手段】本実施形態は、グループベースコミュニケーションシステムのグループベースコミュニケーションオブジェクトにアクセスする許可をクライアントデバイスがサードパーティアプリケーションに選択的に付与できるようにする装置及びシステムを開示する。本装置及びシステムは、システム内のグループベースコミュニケーションオブジェクトについて特定のアクションを取るための許可をサードパーティアプリケーションにクライアントデバイスが選択的に付与できるようにさらにする。これら改良点を達成するために、開示されたシステム、装置、及びコンピューティングデバイスは、サードパーティアプリケーションに付与された許可のレコードを、コンピュータ記憶装置に記憶された許可テーブル内に保持する。許可テーブルは、新たな認証トークンを発行する新たな認証プロセスを必要とすることなく、サードパーティアプリケーションに付与された許可を拡張するために変更され得る。さらに、サードパーティアプリケーションは、システム内でユーザレベルではなく、グループレベルでインストールされ、これはシステム安定性及び効率を高める。【選択図】図１
2021509746.tif 000002
【特許請求の範囲】
【請求項１】
グループベースコミュニケーションサーバ、グループベースコミュニケーションリポジトリ、及び複数のグループベースコミュニケーションチャンネルを備える、グループベースコミュニケーションシステム内でグループベースコミュニケーションオブジェクトに選択的に許可を付与する装置であって、前記装置は、少なくとも１つのプロセッサ及びコンピュータプログラムコードを含む少なくとも１つのメモリを備え、前記少なくとも１つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも１つのプロセッサと共に、前記装置に
アプリユーザアカウント識別子及びサードパーティアプリケーション識別子を備えるアプリユーザアカウントを生成することであって、
前記アプリユーザアカウントは、グループ識別子に関連付けられている
アプリユーザアカウントを生成すること、
前記グループ識別子に基づいて、複数のグループベースコミュニケーションオブジェクトを備える候補グループベースコミュニケーションオブジェクトセットを生成すること、
前記グループ識別子に関連付けられたサードパーティアプリケーションについての許可をユーザが承認できるように構成された許可インタフェースを生成すること、
前記アプリユーザアカウントに関連付けられた許可テーブルを生成することであって、
前記許可テーブルは、前記サードパーティアプリケーション識別子及び前記グループ識別子を含む
許可テーブルを生成すること、
前記サードパーティアプリケーション識別子及び前記グループ識別子を含むアプリトークンを生成すること、及び
前記アプリトークンをサードパーティアプリケーションプロバイダに送信すること
をさせるように構成された、装置。
【請求項２】
前記許可インタフェースは、許可されたグループベースコミュニケーションオブジェクトセット内の前記グループベースコミュニケーションオブジェクトのそれぞれについての許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成され、
前記許可テーブルは、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するマッピングデータをさらに含み、
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットは、前記アプリユーザアカウント識別子に関連付けられる
請求項１に記載の装置。
【請求項３】
前記コンピュータプログラムコードは、前記装置に、
前記アプリユーザアカウント識別子に関連付けられた許可アップデートリクエストを受け取ること、
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットのユーザ変更を可能にするよう構成される許可アップデートインタフェースを生成すること、及び
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの前記ユーザ変更に基づいて前記グループベースコミュニケーションリポジトリをアップデートすること
をさらにさせるように構成された
請求項２に記載の装置。
【請求項４】
前記候補グループベースコミュニケーションオブジェクトセットは、グループベースコミュニケーションチャンネル、プライベートマルチパーティダイレクトメッセージ、パブリックグループベースコミュニケーションチャンネル、プライベートダイレクトメッセージ、ファイル、及びユーザアカウントを含む
請求項１に記載の装置。
【請求項５】
前記アプリユーザアカウントは、ユーザ識別子にさらに関連付けられ、
前記候補グループベースコミュニケーションオブジェクトセットは、前記グループ識別子及び前記ユーザ識別子に基づいて生成される
請求項１に記載の装置。
【請求項６】
前記候補グループベースコミュニケーションオブジェクトセットは、前記ユーザ識別子に関連付けられたユーザにアクセス可能である複数のグループベースコミュニケーションチャンネルであり、
前記許可されたグループベースコミュニケーションオブジェクトセットは、許可されたグループベースコミュニケーションチャンネルセットである
請求項２に記載の装置。
【請求項７】
前記許可インタフェースは、前記許可されたグループベースコミュニケーションチャンネルセットのそれぞれについて許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成された許可アップデートインタフェースであり、
前記許可テーブルは、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するマッピングデータをさらに含み、
前記許可されたグループベースコミュニケーションチャンネルセット及び前記許可されたグループベースコミュニケーションアクションセットは、前記アプリユーザアカウント識別子に関連付けられる
請求項６に記載の装置。
【請求項８】
前記許可されたグループベースコミュニケーションチャンネルセットのうちのそれぞれのグループベースコミュニケーションチャンネルは、チャンネルオブジェクトセットに関連付けられ、
前記許可アップデートインタフェースは、前記チャンネルオブジェクトセットについての許可アクションのユーザ選択を可能にするようさらに構成される
請求項７に記載の装置。
【請求項９】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成され、
前記許可されたグループベースコミュニケーションオブジェクトセットは、前記候補グループベースコミュニケーションオブジェクトセットのサブセットを含む
請求項４に記載の装置。
【請求項１０】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成され、
前記許可されたグループベースコミュニケーションオブジェクトセットは、前記候補グループベースコミュニケーションオブジェクトセットのサブセットを含む
請求項３に記載の装置。
【請求項１１】
前記コンピュータプログラムコードは、前記装置に
前記許可テーブル内に、前記候補グループベースコミュニケーションオブジェクトセットを記憶すること、
前記許可インタフェースを介して、ユーザ選択と同時に、選択表示を、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに、関連付けること、及び
前記許可インタフェースによる許可アクションのユーザ選択と同時に、前記許可アクションを、前記選択表示に関連付けられた前記候補グループベースコミュニケーションオブジェクトセットの前記１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに、関連付けること
によって、
許可されたグループベースコミュニケーションオブジェクトセットを生成すること、及び
前記許可テーブル内に、前記許可されたグループベースコミュニケーションオブジェクトセットを記憶すること
をさらにさせるよう構成される
請求項１に記載の装置。
【請求項１２】
前記コンピュータプログラムコードは、前記装置に
前記サードパーティアプリケーションプロバイダにトリガ識別子を送信すること、
前記アプリユーザアカウント識別子に関連付けられた許可アップデートリクエストを受信すること、
（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成される許可アップデートインタフェースを生成すること、
（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更に基づいて、前記グループベースコミュニケーションリポジトリをアップデートすること、
（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更を確認する確認メッセージを、前記サードパーティアプリケーションプロバイダに送信すること
をさらにさせるよう構成される
請求項１に記載の装置。
【請求項１３】
前記コンピュータプログラムコードは、前記装置に
（ａ）グループベースコミュニケーションインタフェースのインタラクティブボタンをユーザがクリックしたことを示すクリック信号、又は（ｂ）ユーザがグループベースコミュニケーションインタフェースを介してスラッシュコマンドを起動したことを示すコマンド信号のうちの少なくとも１つを受信することに応答して、前記トリガ識別子を前記サードパーティアプリケーションプロバイダに送信すること
をさらにさせるよう構成される
請求項１２に記載の装置。
【請求項１４】
前記コンピュータプログラムコードは、前記装置に
グループベースコミュニケーションインタフェース内にレンダリングするよう構成されたApp DM（アプリ  ダイレクトメッセージ）を生成することであって、前記App DMは複数のタブを含み、少なくとも１つのタブは、前記App DMに関連付けられたサードパーティアプリケーションについての設定タブである、
App DMを生成すること、及び
前記App DMの前記設定タブのユーザ関与に応答して、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成されたインタフェースを生成すること、及び（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更に基づいて、前記グループベースコミュニケーションリポジトリをアップデートすること
をさらにさせるよう構成される
請求項１に記載の装置。
【請求項１５】
前記App DMは、前記アプリユーザアカウント又は前記サードパーティアプリケーションプロバイダによってポストされたメッセージングコミュニケーションを表示するよう構成されたApp DMグループベースコミュニケーションチャンネルを含む
請求項１４に記載の装置。
【請求項１６】
前記コンピュータプログラムコードは、前記装置に
前記アプリユーザアカウント識別子に関連付けられたリクエストを受信することであって、前記リクエストは、グループベースコミュニケーションオブジェクトを前記許可テーブルに追加する表示を含む、
リクエストを受信すること、
許可されたグループベースコミュニケーションオブジェクトセットの変更のユーザ承認を可能にするよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースを生成すること、及び
前記許可されたグループベースコミュニケーションオブジェクトセットの変更の前記ユーザ承認に基づいて、前記許可テーブルをアップデートすること
をさらにさせるよう構成される
請求項１に記載の装置。
【請求項１７】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項１に記載の装置。
【請求項１８】
前記許可インタフェースは、候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項１に記載の装置。
【請求項１９】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクト及び候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項１に記載の装置。
【請求項２０】
前記許可インタフェースは、（ａ）許可されたグループベースコミュニケーションオブジェクトセットに含まれるグループベースコミュニケーションオブジェクト、又は（ｂ）許可されたグループベースコミュニケーションアクションセットに含まれるグループベースコミュニケーションアクションのうちの少なくとも１つに関連する許可の変更をユーザが承認できるように構成された許可アップデートインタフェースである
請求項１に記載の装置。
【請求項２１】
グループベースコミュニケーションサーバ、グループベースコミュニケーションリポジトリ、及び複数のグループベースコミュニケーションチャンネルを備える、グループベースコミュニケーションシステム内でグループベースコミュニケーションオブジェクトに選択的に許可を付与する方法であって、
アプリユーザアカウント識別子及びサードパーティアプリケーション識別子を備えるアプリユーザアカウントを生成することであって、
前記アプリユーザアカウントは、グループ識別子に関連付けられている
アプリユーザアカウントを生成すること、
前記グループ識別子に基づいて、複数のグループベースコミュニケーションオブジェクトを備える候補グループベースコミュニケーションオブジェクトセットを生成すること、
許可されたグループベースコミュニケーションオブジェクトセットを生成するために、前記グループ識別子に関連付けられたサードパーティアプリケーションについての許可をユーザが承認できるように構成された許可インタフェースを生成すること、
前記アプリユーザアカウントに関連付けられた許可テーブルを生成することであって、
前記許可テーブルは、前記サードパーティアプリケーション識別子及び前記グループ識別子を含む
許可テーブルを生成すること、
前記サードパーティアプリケーション識別子及び前記グループ識別子を含むアプリトークンを生成すること、及び
前記アプリトークンをサードパーティアプリケーションプロバイダに送信すること
を含む方法。
【請求項２２】
前記許可インタフェースは、前記許可されたグループベースコミュニケーションオブジェクトセット内の前記グループベースコミュニケーションオブジェクトのそれぞれについての許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成され、
前記許可テーブルは、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するデータをさらに含み、
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットは、前記アプリユーザアカウント識別子に関連付けられる
請求項２１に記載の方法。
【請求項２３】
前記アプリユーザアカウント識別子に関連付けられた許可アップデートリクエストを受け取ること、
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットのユーザ変更を可能にするよう構成される許可アップデートインタフェースを生成すること、及び
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの前記ユーザ変更に基づいて前記グループベースコミュニケーションリポジトリをアップデートすること
をさらに含む
請求項２２に記載の方法。
【請求項２４】
前記候補グループベースコミュニケーションオブジェクトセットは、グループベースコミュニケーションチャンネル、プライベートマルチパーティダイレクトメッセージ、パブリックグループベースコミュニケーションチャンネル、プライベートダイレクトメッセージ、ファイル、及びユーザアカウントを含む
請求項２１に記載の方法。
【請求項２５】
前記アプリユーザアカウントは、ユーザ識別子にさらに関連付けられ、
前記候補グループベースコミュニケーションオブジェクトセットは、前記グループ識別子及び前記ユーザ識別子に基づいて生成される
請求項２１に記載の方法。
【請求項２６】
前記候補グループベースコミュニケーションオブジェクトセットは、前記ユーザ識別子に関連付けられたユーザにアクセス可能である複数のグループベースコミュニケーションチャンネルであり、
前記許可されたグループベースコミュニケーションオブジェクトセットは、許可されたグループベースコミュニケーションチャンネルセットである
請求項２１に記載の方法。
【請求項２７】
前記許可インタフェースは、前記許可されたグループベースコミュニケーションチャンネルセットのそれぞれについて許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成された許可アップデートインタフェースであり、
前記許可テーブルは、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するマッピングデータをさらに含み、
前記許可されたグループベースコミュニケーションチャンネルセット及び前記許可されたグループベースコミュニケーションアクションセットは、前記アプリユーザアカウント識別子に関連付けられる
請求項２６に記載の方法。
【請求項２８】
前記許可されたグループベースコミュニケーションチャンネルセットのうちのそれぞれのグループベースコミュニケーションチャンネルは、チャンネルオブジェクトセットに関連付けられ、
前記グループベースコミュニケーションオブジェクト許可インタフェースは、前記チャンネルオブジェクトセットについての許可アクションのユーザ選択を可能にするようさらに構成される
請求項２７に記載の方法。
【請求項２９】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成され、
前記許可されたグループベースコミュニケーションオブジェクトセットは、前記候補グループベースコミュニケーションオブジェクトセットのサブセットを含む
請求項２４に記載の方法。
【請求項３０】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成され、
前記許可されたグループベースコミュニケーションオブジェクトセットは、前記候補グループベースコミュニケーションオブジェクトセットのサブセットを含む
請求項２３に記載の方法。
【請求項３１】
前記許可テーブル内に、前記候補グループベースコミュニケーションオブジェクトセットを記憶すること、
前記許可インタフェースを介して、ユーザ選択と同時に、選択表示を、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに、関連付けること、及び
前記許可インタフェースによる許可アクションのユーザ選択と同時に、前記許可アクションを、前記選択表示に関連付けられた前記候補グループベースコミュニケーションオブジェクトセットの前記１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに、関連付けること
によって、
許可されたグループベースコミュニケーションオブジェクトセットを生成すること、及び
前記許可テーブル内に、前記許可されたグループベースコミュニケーションオブジェクトセットを記憶すること
をさらに含む
請求項２１に記載の方法。
【請求項３２】
前記サードパーティアプリケーションプロバイダにトリガ識別子を送信すること、
前記アプリユーザアカウント識別子に関連付けられた許可アップデートリクエストを受信すること、
（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成される許可アップデートインタフェースを生成すること、
（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更に基づいて、前記グループベースコミュニケーションリポジトリをアップデートすること、
（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更を確認する確認メッセージを、前記サードパーティアプリケーションプロバイダに送信すること
をさらに含む
請求項２１に記載の方法。
【請求項３３】
（ａ）グループベースコミュニケーションインタフェースのインタラクティブボタンをユーザがクリックしたことを示すクリック信号、又は（ｂ）ユーザがグループベースコミュニケーションインタフェースを介してスラッシュコマンドを起動したことを示すコマンド信号のうちの少なくとも１つを受信することに応答して、前記トリガ識別子を前記サードパーティアプリケーションプロバイダに送信すること
をさらに含む
請求項３２に記載の方法。
【請求項３４】
グループベースコミュニケーションインタフェース内にレンダリングするよう構成されたApp DMを生成することであって、前記App DMは複数のタブを含み、少なくとも１つのタブは、前記App DMに関連付けられたサードパーティアプリケーションについての設定タブである、
App DMを生成すること、及び
前記App DMの前記設定タブのユーザ関与に応答して、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成されたインタフェースを生成すること、及び（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更に基づいて、前記グループベースコミュニケーションリポジトリをアップデートすること
をさらに含む
請求項２１に記載の方法。
【請求項３５】
前記App DMは、前記アプリユーザアカウント又は前記サードパーティアプリケーションプロバイダによってポストされたメッセージングコミュニケーションを表示するよう構成されたApp DMグループベースコミュニケーションチャンネルを含む
請求項３４に記載の方法。
【請求項３６】
前記アプリユーザアカウント識別子に関連付けられたリクエストを受信することであって、前記リクエストは、グループベースコミュニケーションオブジェクトを前記許可テーブルに追加する表示を含む、
リクエストを受信すること、
許可されたグループベースコミュニケーションオブジェクトセットの変更のユーザ承認を可能にするよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースを生成すること、及び
前記許可されたグループベースコミュニケーションオブジェクトセットの前記変更の前記ユーザ承認に基づいて、前記許可テーブルをアップデートすること
をさらに含む
請求項２１に記載の方法。
【請求項３７】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項２１に記載の方法。
【請求項３８】
前記許可インタフェースは、候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項２１に記載の方法。
【請求項３９】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクト及び候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項２１に記載の方法。
【請求項４０】
前記許可インタフェースは、（ａ）許可されたグループベースコミュニケーションオブジェクトセットに含まれるグループベースコミュニケーションオブジェクト、又は（ｂ）許可されたグループベースコミュニケーションアクションセットに含まれるグループベースコミュニケーションアクションのうちの少なくとも１つに関連する許可の変更をユーザが承認できるように構成された許可アップデートインタフェースである
請求項２１に記載の方法。
【請求項４１】
ディスプレイスクリーンを備えるコンピューティングデバイスであって、前記コンピューティングデバイスは、通信ネットワークを介して、グループベースコミュニケーションサーバ、グループベースコミュニケーションリポジトリ、及び複数のグループベースコミュニケーションチャンネルを備えるグループベースコミュニケーションシステムに相互接続され、
前記コンピューティングデバイスは、前記ディスプレイスクリーン上にApp DM（アプリ  ダイレクトメッセージ）を表示するよう構成され、前記App DMは、前記コンピューティングデバイスのただ１つのサードパーティアプリケーション及びただ１人のユーザと関連付けられ、前記ただ１人のユーザは、ユーザ識別子を含む１つのユーザアカウントと関連付けられ、
前記App DMは、
前記ただ１つのサードパーティアプリケーションに関連付けられた許可群のセットを前記ディスプレイスクリーン上に表示するよう構成された設定タブであって、
前記設定タブは、前記コンピューティングデバイスの前記ただ１人のユーザから一連の入力を受信することに応答して、前記ただ１つのサードパーティアプリケーションについての追加の許可をリクエストする信号を生成し、追加の許可をリクエストする前記信号は、許可リクエストに関連する情報を含む信号を前記グループベースコミュニケーションサーバに生成させ、前記コンピューティングデバイスに送信させるよう構成され、前記信号は、前記コンピューティングデバイスにインタフェースをレンダリングさせ、前記インタフェースは、前記コンピューティングデバイスの前記ユーザに、サードパーティアプリケーションに、（ａ）候補グループベースコミュニケーションオブジェクトセットのうちの１つ以上のグループベースコミュニケーションオブジェクトに対するアクセス、又は（ｂ）候補グループベースコミュニケーションアクションセットのうちの１つ以上のグループベースコミュニケーションアクションのうちの少なくとも１つを承認するオプションを提供するようさらに構成される、設定タブ、及び
前記コンピューティングデバイスの前記ただ１人のユーザ及び前記ただ１つのサードパーティアプリケーションの間でやりとりされたメッセージの履歴を前記ディスプレイスクリーン上に表示するよう構成された会話タブであって、前記会話タブは、前記コンピューティングデバイスの前記ただ１人のユーザが入力を提供するためにインタラクトし得るインタラクティブ要素を前記ディスプレイスクリーン上に表示するようさらに構成される、会話タブ
をさらに備える、コンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
さまざまなメッセージングシステムは、エンタープライズにわたってユーザ間でコミュニケーション及びコラボレーションをサポートし得る。本出願人は、コラボレーションを行うコミュニケーション環境に関連するいくつかの欠陥及び問題を特定した。投入された努力、発明の才、及び革新を通して、これら特定された問題の多くは、本開示の実施形態に含まれる解決策を開発することによって解決されて、その多くの例がここで詳細に記載される。
【発明の概要】
【課題を解決するための手段】
【０００２】
この明細書は、グループベースコミュニケーションシステム内でグループベースコミュニケーションオブジェクトに選択的に許可を付与する方法及び装置に関する。本装置は、グループベースコミュニケーションサーバ、グループベースコミュニケーションリポジトリ、及び複数のグループベースコミュニケーションチャンネルを含むよう構成される。前記装置は、少なくとも１つのプロセッサ及び少なくとも１つのメモリも含む。改良点を実現するために、本装置は、アプリユーザアカウント識別子及びサードパーティアプリケーション識別子を備えるアプリユーザアカウントを生成するよう構成される。前記アプリユーザアカウントは、グループ識別子に関連付けられている。本装置は、前記グループ識別子に基づいて、複数のグループベースコミュニケーションオブジェクトを備える候補グループベースコミュニケーションオブジェクトセットを生成する。本装置は、前記グループ識別子に関連付けられたサードパーティアプリケーションについての許可をユーザが承認できるように構成された許可インタフェースを生成する。本装置は、前記アプリユーザアカウントに関連付けられた許可テーブルを生成するようさらに構成され、前記許可テーブルは、前記サードパーティアプリケーション識別子及び前記グループ識別子を含む。本装置は、前記サードパーティアプリケーション識別子及び前記グループ識別子を含むアプリトークンも生成する。最後に、本装置は、前記アプリトークンをサードパーティアプリケーションプロバイダに送信するよう構成される。
【０００３】
上記実施形態の第１変形例において、本装置は、前記候補グループベースコミュニケーションオブジェクトセットは、グループベースコミュニケーションチャンネル、プライベートマルチパーティダイレクトメッセージ、パブリックグループベースコミュニケーションチャンネル、プライベートダイレクトメッセージ、ファイル、及びユーザアカウントを含むように構成される。この具体的な実施形態のさらなる変形例では、前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成され、前記許可されたグループベースコミュニケーションオブジェクトセットは、前記候補グループベースコミュニケーションオブジェクトセットのサブセットを含む。
【０００４】
第１変形例の他の実施形態では、アプリユーザアカウントがユーザ識別子にさらに関連付けられ、候補グループベースコミュニケーションオブジェクトセットがグループ識別子及びユーザ識別子に基づいて生成されるよう本装置は構成される。
【０００５】
第１変形例の他の実施形態では、前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである。
【０００６】
第１変形例の他の実施形態では、前記許可インタフェースは、候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである。
【０００７】
第１変形例の他の実施形態では、前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクト及び候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである。
【０００８】
第１変形例の他の実施形態では、前記許可インタフェースは、（ａ）許可されたグループベースコミュニケーションオブジェクトセットに含まれるグループベースコミュニケーションオブジェクト、又は（ｂ）許可されたグループベースコミュニケーションアクションセットに含まれるグループベースコミュニケーションアクションのうちの少なくとも１つに関連する許可の変更をユーザが承認できるように構成された許可アップデートインタフェースである。
【０００９】
本装置の第２変形例では、前記許可インタフェースは、許可されたグループベースコミュニケーションオブジェクトセット内の前記グループベースコミュニケーションオブジェクトのそれぞれについての許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成され、前記許可テーブルは、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するマッピングデータをさらに含み、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットは、前記アプリユーザアカウント識別子に関連付けられる。
【００１０】
前記候補グループベースコミュニケーションオブジェクトセットは、前記ユーザ識別子に関連付けられたユーザにアクセス可能である複数のグループベースコミュニケーションチャンネルであり、前記許可されたグループベースコミュニケーションオブジェクトセットは、許可されたグループベースコミュニケーションチャンネルセットである。
【００１１】
本装置の第３変形例では、本装置は、前記アプリユーザアカウント識別子に関連付けられた許可アップデートリクエストを受け取るようにさらに構成される。本装置は、それから、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットのユーザ変更を可能にするよう構成される許可アップデートインタフェースを生成する。最後に、本装置は、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの前記ユーザ変更に基づいて前記グループベースコミュニケーションリポジトリをアップデートする。
【００１２】
第３変形例の他の実施形態では、前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成される。さらに、前記許可されたグループベースコミュニケーションオブジェクトセットは、前記候補グループベースコミュニケーションオブジェクトセットのサブセットを含む。
【００１３】
本装置の第４変形例では、前記候補グループベースコミュニケーションオブジェクトセットは、前記ユーザ識別子に関連付けられたユーザにアクセス可能である複数のグループベースコミュニケーションチャンネルであり、前記許可されたグループベースコミュニケーションオブジェクトセットは、許可されたグループベースコミュニケーションチャンネルセットであり、前記許可インタフェースは、前記許可されたグループベースコミュニケーションチャンネルセットのそれぞれについて許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成された許可アップデートインタフェースであり、前記許可されたグループベースコミュニケーションチャンネルセット及び前記許可されたグループベースコミュニケーションアクションセットは、前記アプリユーザアカウント識別子に関連付けられる。さらに、本装置のこの変形例では、前記許可テーブルは、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するマッピングデータをさらに含む。
【００１４】
他の実施形態では、前記許可されたグループベースコミュニケーションチャンネルセットのうちのそれぞれのグループベースコミュニケーションチャンネルは、チャンネルオブジェクトセットに関連付けられ、前記グループベースコミュニケーションオブジェクト許可インタフェースは、前記チャンネルオブジェクトセットについての許可アクションのユーザ選択を可能にするようさらに構成される。
【００１５】
本装置の第５変形例では、本装置は、前記許可テーブル内に、前記候補グループベースコミュニケーションオブジェクトセットを記憶するようさらに構成される。本装置は、（ａ）前記許可インタフェースを介して、ユーザ選択と同時に、選択表示を、前記候補グループベースコミュニケーションオブジェクトセットの前記１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに、関連付けること、及び（ｂ）前記許可インタフェースによる前記許可アクションのユーザ選択と同時に、許可アクションを、前記選択表示に関連付けられた前記候補グループベースコミュニケーションオブジェクトセットの前記１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに、関連付けることによって、許可されたグループベースコミュニケーションオブジェクトセットをさらに生成する。最後に、本装置は、前記許可テーブル内に、前記許可されたグループベースコミュニケーションオブジェクトセットを記憶する。
【００１６】
本装置の第６変形例では、本装置は、前記サードパーティアプリケーションプロバイダにトリガ識別子を送信するようさらに構成される。本装置は、また、前記アプリユーザアカウント識別子に関連付けられた許可アップデートリクエストを受信し、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成される許可アップデートインタフェースを生成する。本装置は、続いて、（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更に基づいて、前記グループベースコミュニケーションリポジトリをアップデートする。それから本装置は、（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更を確認する確認メッセージを、前記サードパーティアプリケーションプロバイダに送信する。
【００１７】
第６変形例の他の実施形態では、本装置は、（ａ）グループベースコミュニケーションインタフェースのインタラクティブボタンをユーザがクリックしたことを示すクリック信号、又は（ｂ）ユーザがグループベースコミュニケーションインタフェースを介してスラッシュコマンドを起動したことを示すコマンド信号のうちの少なくとも１つを受信することに応答して、前記トリガ識別子を前記サードパーティアプリケーションプロバイダに送信する。
【００１８】
本装置の第７変形例では、本装置は、グループベースコミュニケーションインタフェース内にレンダリングするよう構成されたApp DM（アプリ  ダイレクトメッセージ）を生成することであって、前記App DMは複数のタブを含み、少なくとも１つのタブは、前記App DMに関連付けられたサードパーティアプリケーションについての設定タブである、App DMを生成するようさらに構成される。本装置は、それから、前記App DMの前記設定タブのユーザ関与に応答して、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成された許可インタフェースを生成し、かつ（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更に基づいて、前記グループベースコミュニケーションリポジトリをアップデートする。
【００１９】
第７変形例の他の実施形態では、前記App DMは、前記アプリユーザアカウント又は前記サードパーティアプリケーションプロバイダによってポストされたメッセージングコミュニケーションを表示するよう構成されたApp DMグループベースコミュニケーションチャンネルを含む。
【００２０】
本装置の第８変形例では、本装置は、前記アプリユーザアカウント識別子に関連付けられたリクエストを受信することであって、前記リクエストは、グループベースコミュニケーションオブジェクトを前記許可テーブルに追加する表示を含む、リクエストを受信する。本装置は、続いて、許可されたグループベースコミュニケーションオブジェクトセットの変更のユーザ承認を可能にするよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースを生成し、かつ前記許可されたグループベースコミュニケーションオブジェクトセットの変更の前記ユーザ承認に基づいて、前記許可テーブルをアップデートする。
【図面の簡単な説明】
【００２１】
本開示は、一般的な語でこのように記載されてきたが、ここで添付の図面が参照され、図面においては、正しい縮尺とは必ずしも限らない。
【図１】図１は、本開示の実施形態を実施するよう構成されたグループベースコミュニケーションシステムのシステムアーキテクチャ図である。
【図２】図２は、本開示のある実施形態によるコンピューティングエンティティの例示的概略図である。
【図３Ａ】図３Ａは、グループベースコミュニケーションリポジトリの例示的実施形態を示す。
【図３Ｂ】図３Ｂは、グループベースコミュニケーションリポジトリ内の許可テーブルを表す例示的データテーブルを示す。
【図３Ｃ】図３Ｃは、グループベースコミュニケーションリポジトリ内のアプリトークンを表す例示的データテーブルを示す。
【図３Ｄ】図３Ｄは、グループベースコミュニケーションリポジトリ内のオブジェクト例外テーブルを表す例示的データテーブルを示す。
【図４Ａ】図４Ａは、グループベースコミュニケーションシステム内にサードパーティアプリケーションをインストールするプロセスを記載する信号図である。
【図４Ｂ】図４Ｂは、グループベースコミュニケーションシステム内にサードパーティアプリケーションをインストールするプロセスを記載する信号図である。
【図４Ｃ】図４Ｃは、グループベースコミュニケーションシステム内にサードパーティアプリケーションをインストールするプロセスを記載する信号図である。
【図４Ｄ】図４Ｄは、グループベースコミュニケーションシステム内にサードパーティアプリケーションをインストールするプロセスを記載する信号図である。
【図５Ａ】図５Ａは、グループベースコミュニケーションオブジェクト許可インタフェースのさまざまな例示的実施形態を示す。
【図５Ｂ】図５Ｂは、グループベースコミュニケーションオブジェクト許可インタフェースのさまざまな例示的実施形態を示す。
【図５Ｃ】図５Ｃは、グループベースコミュニケーションオブジェクト許可インタフェースのさまざまな例示的実施形態を示す。
【図６】図６は、グループベースコミュニケーションシステム内の新しいグループベースコミュニケーションオブジェクトにサードパーティアプリケーションを追加するプロセスを示す信号図である。
【図７Ａ】図７Ａは、グループベースコミュニケーションオブジェクト許可インタフェースの追加の例示的実施形態を示す。
【図７Ｂ】図７Ｂは、グループベースコミュニケーション許可インタフェースの例示的実施形態を示す。
【図８Ａ】図８Ａは、追加の許可を漸進的にリクエストするために、サードパーティアプリケーションによって採用されるプロセスを示す信号図である。
【図８Ｂ】図８Ｂは、許可アップデートインタフェースの例示的実施形態を示す。
【図９Ａ】図９Ａは、App DMのさまざまなタブ及び特徴を示す。
【図９Ｂ】図９Ｂは、App DMのさまざまなタブ及び特徴を示す。
【図９Ｃ】図９Ｃは、App DMのさまざまなタブ及び特徴を示す。
【図９Ｄ】図９Ｄは、App DMのさまざまなタブ及び特徴を示す。
【図９Ｅ】図９Ｅは、App DMのさまざまなタブ及び特徴を示す。
【図９Ｆ】図９Ｆは、App DMのさまざまなタブ及び特徴を示す。
【図９Ｇ】図９Ｇは、App DMのさまざまなタブ及び特徴を示す。
【図９Ｈ】図９Ｈは、App DMのさまざまなタブ及び特徴を示す。
【図９Ｉ】図９Ｉは、App DMのさまざまなタブ及び特徴を示す。
【図１０】図１０は、本発明のさまざまな実施形態を実現するフロー図を示す。
【図１１】図１１は、本発明のさまざまな実施形態を実現するフロー図を示す。
【図１２】図１２は、本発明のさまざまな実施形態を実現するフロー図を示す。
【図１３】図１３は、本発明のさまざまな実施形態を実現するフロー図を示す。
【図１４】図１４は、本発明のさまざまな実施形態を実現するフロー図を示す。
【図１５】図１５は、本発明のさまざまな実施形態を実現するフロー図を示す。
【図１６】図１６は、本発明のさまざまな実施形態を実現するフロー図を示す。
【図１７】図１７は、本発明のさまざまな実施形態を実現するフロー図を示す。
【発明を実施するための形態】
【００２２】
本開示のさまざまな実施形態は、添付の図面を参照して以下にさらに完全に説明される。ここでは本開示のいくつかの実施形態が示されるが、全ての実施形態が示されるわけではない。実際、本開示は、多くの異なる形態で実現され得て、ここで述べる実施形態に限定されるように解釈されるべきではない。むしろ、これら実施形態は、本開示が適用される法的要件を満足するように提供される。「又は」という語は、ここでは、そうではないと示される場合を除き、代替及び接続の意味の両方で用いられる。「実例の」及び「例示的な」という語は、品質のレベルを表すことなく、例示であるものとして用いられる。全体にわたって同様の番号は、同様の要素を参照する。
【００２３】
定義
ここで用いられるように「データ」、「コンテンツ」、「デジタルコンテンツ」、「デジタルコンテンツコンテンツオブジェクト」、「情報」という語、及び同様の語は、本発明の実施形態に従って送信、受信、及び／又は記憶されることが可能なデータを表すために相互交換的に用いられ得る。よって、任意のそのような語の使用は、本発明の実施形態の精神及び範囲を限定するように解釈されるべきではない。さらに、データを他の計算デバイスから受け取るための計算デバイスがここで記載されるが、このデータは、他の計算デバイスから直接に受け取られてもよく、又は、例えば、１つ以上のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局、ホスト、及び／又は同様のもののような、「ネットワーク」とここで呼ばれることもある、１つ以上の媒介する計算デバイスを介して間接的に受け取られてもよいことが理解されよう。同様に、計算デバイスは、他の計算デバイスにデータを送るようここでは記載されるが、このデータは、他の計算デバイスに直接に送られてもよく、又は１つ以上の中間計算デバイスを介して、例えば１つ以上のサーバ、リレー、ルータ、ネットワークアクセスポイント、基地局、ホスト及び／又はその他を介して、間接的に送られてもよいことが理解されるだろう。
【００２４】
「クライアントデバイス」という語は、サーバによって利用可能にされたサービスにアクセスするよう構成されたコンピュータハードウェア及び／又はソフトウェアを表す。サーバは、しばしば（いつもではないが）他のコンピュータシステム上にあり、その場合、クライアントデバイスは、ネットワークによってサービスにアクセスする。クライアントデバイスは、限定としてではなく、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ウェラブル機器、パーソナルコンピュータ、エンタープライズコンピュータ等を含み得る。
【００２５】
「グループベース」は、規定されたグループのユーザ群にだけアクセス可能であるのに十分なセキュリティを有するシステム、チャンネル、メッセージ、又は仮想環境を表すためにここでは用いられている。このグループは、組織又は商業エンタープライズのもののようなコモンアクセス信任状によって定義され得る。アクセスは、参加するための認証された要求又はあるグループメンバユーザから他の非メンバユーザに送信された参加するための招待によってさらに促進され得る。グループ識別子（以下に定義される）は、データ、情報、メッセージ等を特定のグループと関連付けるために用いられる。
【００２６】
「グループベースコミュニケーションチャンネル」という語は、当該グループのメンバだけに閲覧可能である、チャンネルメンバ（例えばクライアントデバイスを用いて環境にアクセスする認証されたユーザ）によってポストされたメッセージングコミュニケーションを表示するよう構成された仮想的な通信環境つまりフィードを表す。グループベースコミュニケーションチャンネルのフォーマットは、グループベースコミュニケーションチャンネルの異なるメンバには異なるように見えるかもしれない。しかし、グループベースコミュニケーションのチャンネルのコンテンツ（すなわちメッセージングコミュニケーション）は、そのグループベースコミュニケーションチャンネルのそれぞれのメンバに表示される。例えば、グループベースのメッセージングコミュニケーションの共通セット（common set）は、それぞれのグループベースコミュニケーションチャンネルのそれぞれのメンバに表示されて、グループベースコミュニケーションチャンネルのコンテンツ（すなわちメッセージングコミュニケーション）がグループベースコミュニケーションチャンネルのメンバごとに変わらないようにする。
【００２７】
「ユーザ」という語は、個人、企業、組織等の個人、グループを表すと理解されるべきであり、ここで参照されるユーザ群は、クライアントデバイスを用いてグループベースコミュニケーション又はメッセージングシステムにアクセスしている。グループベースコミュニケーションシステムのそれぞれのユーザは、少なくとも１つのグループ識別子と関連付けられている。それぞれのグループ識別子は、ユニークな数である。例えば、ある実施形態では、グループ識別子は、６４ビットの符号なし整数として記憶され、外部的には（メモリの外では）ベース３４でエンコードされた文字列であり得る。
【００２８】
「ユーザプロフィール」、「ユーザアカウント」、及び「ユーザアカウント詳細」という語は、ユーザと関連付けられた情報を表し、これには、例えば、ユーザ識別子、そのユーザがアクセスを認められているグループベースコミュニケーションチャンネルと関連付けられた１つ以上のグループベースコミュニケーションチャンネル識別子、そのユーザが関連付けられているグループの１つ以上のグループ識別子、そのユーザがいずれかのグループベースコミュニケーションチャンネルのオーナーであるかについての表示、ユーザがいずれかのグループベースコミュニケーションチャンネルの制限を有するかについての表示、複数のメッセージ、複数の絵文字、複数の会話、複数の会話トピックス、アバター、電子メールアドレス、実名（例えばJohn Doe）、ユーザ名（例えばjdoe）、パスワード、実名、時間帯、ステータス等が含まれる。ユーザアカウント詳細は、例えば、そのユーザのユーザ名及びパスワードを含むそのユーザのログイン情報のようなユーザ資格情報（user credentials）のサブセット指定を含み得る。
【００２９】
「グループベースコミュニケーションチャンネル識別子」又は「チャンネル識別子」という語は、グループベースコミュニケーションチャンネルが特定され得るデータの１つ以上のアイテムを表す。例えば、グループベースコミュニケーションチャンネル識別子は、ＡＳＣＩＩ（American Standard Code for Information Interchange、情報交換用米国標準コード）テキスト、ポインタ、メモリアドレス等を含み得る。
【００３０】
「グループ識別子」又は「チーム識別子」は、グループベースコミュニケーションシステム内のグループが特定され得るデータの１つ以上のアイテムを表す。例えば、グループ識別子は、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス等を含み得る。
【００３１】
ここで用いられるように、「メッセージングコミュニケーション」及び「メッセージ」という語は、クライアントデバイスを用いてユーザによって提供される、グループベースコミュニケーションチャンネル内で表示されるよう構成された任意の電子的に生成されたデジタルコンテンツオブジェクトを表す。メッセージ通信は、ユーザによって提供される（クライアントデバイスを用いて）任意のテキスト、画像、動画、オーディオ又はそれらの組み合わせを含み得る。例えば、ユーザは、メッセージコンテンツとしてメッセージングコミュニケーションの中で画像及び動画と共にテキストを含むメッセージングコミュニケーションを提供し得る。そのような場合、テキスト、画像、及び動画は、メッセージングコミュニケーション又はデジタルコンテンツオブジェクトを構成し得る。グループベースコミュニケーションシステムのグループベースコミュニケーションチャンネルに送信又はポストされたそれぞれのメッセージは、以下を含むメタデータを含み、すなわちこのメタデータは、送信するユーザの識別子、メッセージ識別子、メッセージコンテンツ、グループ識別子、及びグループベースコミュニケーションチャンネルの識別子を含む。上述の識別子のそれぞれは、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス等を含み得る。
【００３２】
「送信ユーザ識別子」は、特定のユーザ（すなわち特定のユーザに関連付けられたクライアントデバイス）によって送られるメッセージのコレクションと関連付けられる。これらメッセージは、ユーザに関するコンテキストを決定するために分析され得る（例えばあるトピックにおけるユーザの専門知識又は興味は、そのようなメッセージの中のそのトピック又はそのトピックに関連付けられたキーワードの言及の頻度に基づいて決定され得る）。
【００３３】
グループベースコミュニケーションシステムユーザは、組織グループに組織化され（organized）（例えばそれぞれの会社の従業員は、別々の組織グループであり得る）、それぞれの組織グループは、ユーザが割当され得る又はユーザが参加し得る（例えばグループベースコミュニケーションチャンネルは、部署、オフィスのような地理的位置、製品ライン、ユーザの関心、トピック、問題、及び／又はその他を表し得る）１つ以上のグループベースコミュニケーションチャンネル（以下で説明される）を有し得る。グループ識別子は、メッセージのためのアクセス制御を促進するのに用いられ得る（例えばサーチクエリに応答してサーチ結果の一部としてメッセージリターンを持つようなメッセージへのアクセスは、それらのユーザプロフィールに関連付けられたグループ識別子を有するそれらユーザに制限され得る）。グループ識別子は、メッセージについてのコンテキストを決定するのに用いられ得る（例えば組織の名称及び／又は組織の簡単な説明のようなグループの記述がグループ識別子に関連付けられ得る）。
【００３４】
グループベースコミュニケーションシステムユーザは、グループベースコミュニケーションチャンネルに参加し得る。一部のグループベースコミュニケーションチャンネルは、それらのユーザプロフィールに関連付けられた特定の組織グループ識別子を有するそれらユーザにとってはグローバルにアクセス可能であり得る（すなわちその組織のメンバであるユーザ）。一部のグループベースコミュニケーションチャンネルへのアクセスは、特定のグループのメンバに制限され得て、それによってグループベースコミュニケーションチャンネルは、それらのユーザプロフィールに関連付けられた特定のグループ識別子を有するそれらユーザにアクセス可能である。グループベースコミュニケーションチャンネル識別子は、メッセージについてのアクセス制御を促進するために用いられ得る（例えば、サーチクエリに応答してサーチ結果の一部としてメッセージリターンを持つようなメッセージへのアクセスは、それらのユーザプロフィールに関連付けられたグループ識別子を有し、又はグループベースコミュニケーションチャンネルに参加する能力を有するそれらユーザに制限され得る）。グループベースコミュニケーションチャンネル識別子は、メッセージのコンテキストを決定するのに用いられ得る（例えば、グループベースコミュニケーションチャンネルで議論されるプロジェクトの説明のような、グループベースコミュニケーションチャンネルの説明は、グループベースコミュニケーションチャンネル識別子に関連付けられ得る）。
【００３５】
「プライベートグループベースコミュニケーションチャンネル」という語は、制限されたアクセスを持つことによって、グループベースコミュニケーションシステムの他のメンバによって一般にはアクセス可能ではなく及び／又はサーチ可能ではないグループベースコミュニケーションチャンネルを表す。例えば、プライベートグループベースコミュニケーションチャンネルへのアクセスについての知識及び許可を有する（例えば、ユーザが確認（validated）／認証された後に、プライベートグループベースコミュニケーションチャンネルについてのグループベースコミュニケーションチャンネル識別子がそれらのユーザプロフィールに関連付けられる）ユーザ又は管理者だけが、プライベートグループベースコミュニケーションチャンネルのコンテンツを見ることができる。
【００３６】
「グループベースコミュニケーションリポジトリ」という語は、グループベースコミュニケーションシステムによって、データが記憶され、アクセスされ、変更され、及びそれ以外のやり方で維持される場所を表す。記憶されたデータは、グループベースコミュニケーションシステムの操作を促進する情報を含む。グループベースコミュニケーションリポジトリは、データ記憶装置又は装置群として、別個のデータベースサーバ又はサーバ群として、又はデータ記憶装置及び別個のデータベースサーバ群の組み合わせとして実現され得る。さらに、ある実施形態では、グループベースコミュニケーションリポジトリは、分散されたリポジトリとして実現されることによって、記憶されたデータのうちの一部は、グループベースコミュニケーションシステム内のあるロケーションで集約的に記憶され、他のデータは、単一の遠隔地又は複数の遠隔地群において記憶され得る。代替として、ある実施形態では、グループベースコミュニケーションリポジトリは、複数の遠隔記憶ロケーション群だけにわたって分散され得る。
【００３７】
ここで用いられるように、「サードパーティアプリケーション」という語は、グループベースコミュニケーションシステム内で機能を実行するよう構成されているソフトウェアプログラム、プラットフォーム、又はサービスを表す。サードパーティアプリケーションは、アプリユーザを介してグループベースコミュニケーションシステム内のグループにおいて集積され得る。例えば、サードパーティアプリケーションは、サードパーティアプリケーションプロバイダによって提供され、サードパーティアプリケーションプロバイダによって記憶及び維持されるサービスとしてのソフトウェア（ＳａａＳ）製品又はアプリケーション（Ａｐｐ）製品であり得る。そのような例では、グループベースコミュニケーションシステムにアクセスするクライアントデバイスは、クライアントデバイスのユーザが関連付けられているグループを介してＳａａＳ又はＡｐｐ製品にアクセスし得る。
【００３８】
ここで用いられるように、「サードパーティアプリケーションプロバイダ」という語は、サードパーティ個人、会社、又は組織によって維持された、サーバ又は処理デバイスのようなリモートネットワーク接続されたデバイスによるサードパーティアプリケーションのプロバイダを表す。グループベースコミュニケーションシステムにおけるクライアントデバイスは、サードパーティアプリケーションプロバイダによって提供されるサードパーティアプリケーションにアクセスして、機能、フロー、又はアクションを実行し得る。ある実施形態では、機能、フロー、又はアクションは、例えば、グループベースコミュニケーションシステム内でデータを操作すること、又はグループベースコミュニケーションシステム内でメッセージをポストすること、又はグループベースコミュニケーションインタフェースにおけるレンダリングのためにグループベースコミュニケーションシステムにコンテンツを提供することのような、なんらかの他のアクションを実行することによって、グループベースコミュニケーションシステム内で効果を作る。他の実施形態では、機能、フロー、又はアクションは、サードパーティアプリケーションプロバイダの中で効力を発して、サードパーティアプリケーションプロバイダの中で効果を作る。さらに他の実施形態では、機能、フロー、又はアクションは、グループベースコミュニケーションシステム、サードパーティアプリケーションプロバイダ、及び他のサーバ又はシステムのさまざまな組み合わせの中で効果を作る。
【００３９】
例えば、さらなる明瞭さ及び文脈を提供するために、サードパーティアプリケーションは、インストールプロセスの間にグループベースコミュニケーションシステムからアプリトークン（app token）をリクエストすることによって、グループベースコミュニケーションシステム内のその関連付けられたアプリユーザアカウントを介して、グループベースコミュニケーションシステムにおけるグループベースコミュニケーションオブジェクトへのアクセスを獲得する。一般に、前記アプリトークンを生成するためには、グループベースコミュニケーションシステムは、サードパーティアプリケーションプロバイダ及びグループベースコミュニケーションシステムのユーザとOAuth（オーオース）ワークフローを開始する。OAuthフロー内では、サードパーティアプリケーションプロバイダと関連付けられたリモートネットワーク接続されたデバイスは、サードパーティアプリケーションプロバイダによって提供されたサードパーティアプリケーションをインストールする権限（authorization）をグループベースコミュニケーションシステムのユーザから得る。グループベースコミュニケーションサーバは、サードパーティアプリケーションプロバイダによって送信されたユーザ権限を受信することに応答して、グループベースコミュニケーションシステム内にやはり記憶される、そのサードパーティアプリケーションプロバイダについてのアプリトークンをそれから生成する。サードパーティアプリケーションプロバイダは、アプリトークンを利用することによって、グループベースコミュニケーションシステム内のさまざまなグループベースコミュニケーションオブジェクトへのサードパーティアプリケーションアクセスを許可し得る。サードパーティアプリケーションプロバイダは、ＳａａＳ又はアプリ製品を提供する、サービスとしてのソフトウェア（ＳａａＳ）プロダクトプロバイダ又はアプリケーション（アプリ）プロダクトプロバイダであり得る。
【００４０】
ここで用いられるように、「サードパーティアプリケーションプロバイダ識別子」という語は、グループベースコミュニケーションシステム内でサードパーティアプリケーションを提供するサードパーティアプリケーションプロバイダが特定され得る手段である、データの１つ以上のアイテムを表す。例えば、サードパーティアプリケーションプロバイダ識別子は、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス等を含み得る。
【００４１】
ここで用いられるように、「アプリユーザアカウント」及び「アプリユーザ」という語は、サードパーティアプリケーションを表現するよう構成され、サードパーティアプリケーションと関連付けられた、グループベースコミュニケーションシステム内のデータ構造を表す。さらに、アプリユーザアカウントは、それによってサードパーティアプリケーションがグループベースコミュニケーションオブジェクトにアクセスし、それらのグループベースコミュニケーションオブジェクトについてアクションを取り得る手段である。アプリユーザアカウントは、アプリケーション識別子を含み、これは、アプリユーザアカウントを、同じアプリケーション識別子をやはり含む単一のアプリトークンに関連付ける。
【００４２】
グループベースコミュニケーションシステムは、グループベースコミュニケーションシステム内のサードパーティアプリケーションのインストールごとに１つのアプリユーザアカウントを作成する。ある実施形態では、グループベースコミュニケーションシステムは、あるグループに属する全てのユーザの間で共有されるアプリユーザアカウントを１つだけ作る。その目的のために、アプリユーザアカウントは、グループ識別子も含み、これは、そのアプリユーザアカウントをそのグループ識別子と関連付けられた特定のグループと関連付ける。よって、サードパーティアプリケーションのグループへのインストールの間、そのグループベースコミュニケーションシステムは、アプリユーザアカウントをグループ識別子と関連付ける。
【００４３】
アプリユーザアカウント及びグループベースコミュニケーションシステムユーザが、両方とも同じグループ識別子を備えるとき、グループベースコミュニケーションサーバは、グループベースコミュニケーションシステムに、そのアプリユーザアカウントへのアクセスを与えることによって、グループベースコミュニケーションシステムユーザがアプリユーザアカウントを変更又は設定できるようにする。ある実施形態では、アプリユーザアカウントにアクセスし、変更する能力は、App DMを介してなされ、App DMは、以下の定義においてさらに説明される。ある実施形態では、グループベースコミュニケーションシステムは、サードパーティアプリケーションをグループに最初にインストールするグループベースコミュニケーションシステムユーザが、そのグループ内のどのグループベースコミュニケーションシステムユーザが、そのインストールされたサードパーティアプリケーションに関連付けられたアプリユーザアカウントを管理及び設定できるかを制限できるようにする。ある実施形態では、アプリユーザアカウントへのアクセス権を有するユーザの選択は、App DMを介してなされる。
【００４４】
ある実施形態では、アプリユーザアカウントは、例えば、「is_app_user」変数のような変数をさらに備える。このis_app_user変数は、ブール型変数、３値ロジックを利用する変数、又は状態又は論理ビットを記憶するのに適切な任意の他のデータ型として実現され得る。is_app_user変数がある値を記憶するとき、グループベースコミュニケーションシステムは、その値を利用することによって、他のユーザアカウントに一般に付与されるプロパティとは異なるプロパティをそのアプリユーザアカウントに付与し得る。例えば、ある実施形態では、グループベースコミュニケーションシステムは、そのアプリユーザアカウントが、他のグループベースコミュニケーションユーザができるようには、グループベースコミュニケーションチャンネルにアクセスを得ることを許さない。換言すれば、グループベースコミュニケーションシステムユーザができるようには、アプリユーザアカウントは、参加することを許されないか、又はグループベースコミュニケーションチャンネルのメンバになってそのグループベースコミュニケーションチャンネルについて許可を得ることを許されない。代わりに、本開示の詳細な説明において説明されるように、グループベースコミュニケーションシステムは、グループベースコミュニケーションチャンネル及び他のグループベースコミュニケーションオブジェクトについて、アプリユーザアカウントのアクセスを、グループベースコミュニケーションシステムユーザによって許可されたアクセスだけに制限する。
【００４５】
さらなる例として、ある実施形態では、is_app_user変数がある値を記憶するとき、グループベースコミュニケーションシステムは、どのユーザに対してもアプリユーザアカウントを介してグループベースコミュニケーションシステムにログインすることを許さない。すなわち、ログインＵＲＩ（ユニフォームリソース識別子）において、グループベースコミュニケーションシステムは、アプリユーザアカウントの資格情報を、グループベースコミュニケーションユーザがグループベースコミュニケーションシステムにアクセスし得る資格情報としては、受け入れない。いかなるグループベースコミュニケーションユーザも、そのアプリユーザアカウントを用いてシステムにログインすることはできないが、それは、アプリユーザアカウントは、上で定義されたユーザアカウントではないからである。
【００４６】
最後に、それぞれのアプリユーザアカウントは、それに関連付けられたアプリトークンを有する。このアプリトークンは、サードパーティアプリケーションのインストールと同時に、グループベースコミュニケーションシステムによって生成される。アプリトークンは、以下で述べる定義においてさらに説明される。インストールの後に、アプリユーザアカウントは、そのアプリユーザアカウントに、１つ以上のグループベースオブジェクトにアクセスするためのさまざまな許可を付与することによって、グループベースコミュニケーションシステムのさまざまなグループベースオブジェクトに追加され得る。
【００４７】
ここで用いられるように、「アプリユーザ識別子」という語は、グループベースコミュニケーションシステム内のアプリユーザアカウントが識別され得るデータの１つ以上のアイテムを表す。例えば、アプリユーザ識別子は、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス等を含み得る。
【００４８】
ここで用いられるように、「アプリトークン」という語は、グループベースコミュニケーションシステムがサードパーティアプリケーションのアイデンティティを認証し、そのサードパーティアプリケーションにグループベースコミュニケーションシステムにおける許可を付与するために利用し得る、アプリユーザアカウントに関連付けられた資格情報のセットを表す。アプリトークンは、サードパーティアプリケーションに関連付けられた許可を特定する情報を含む。
【００４９】
明瞭さ及び文脈を提供するために、ある例示的実施形態では、アプリトークンは、それぞれのサードパーティアプリケーションのためにユニークに生成された暗号列を含む。いったん、サードパーティアプリケーションがさまざまなグループベースコミュニケーションオブジェクトにアクセスすることをクライアントデバイスのユーザが承認付与したことを示す認証信号を認証モジュールが受信すると、グループベースコミュニケーションシステム内の認証モジュールは、アプリトークンをサードパーティアプリケーションプロバイダに発行する。アプリトークンの初期発行の後に、アプリユーザアカウントに付与された許可は、さらなる許可をユーザからリクエストし、アプリトークンに関連付けられた許可を変更することによってカスタマイズされ得る。許可のこれら後続の付与は、新しいアプリトークンがそのサードパーティアプリケーションプロバイダに発行されることを要求しない。
【００５０】
ここで用いられるように、「オブジェクト識別子」という語は、それによってグループベースコミュニケーションシステム内のグループベースコミュニケーションオブジェクトが特定され得る、データの１つ以上のアイテムを表す。例えば、オブジェクト識別子は、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス等を含み得る。
【００５１】
ここで用いられるように、「オブジェクトタイプ」という語は、共通の特性を有するオブジェクトのカテゴリーを表す。例えば、グループベースコミュニケーションオブジェクトは、グループベースコミュニケーションチャンネル、プライベートグループベースコミュニケーションチャンネル、プライベートダイレクトメッセージ、プライベートマルチパーティダイレクトメッセージ、グループ又はチーム、チームについての情報、ユーザアカウント、グループベースコミュニケーションシステムユーザ、グループ識別子に関連付けられたグループベースコミュニケーションシステムユーザ、絵文字、メニュー、インタラクティブボタン、リンク、他のインタラクティブエレメント、ピクチャ、ファイル等としてカテゴライズされ得る。
【００５２】
ここで用いられるように、「グループベースコミュニケーションオブジェクト」は、グループベースコミュニケーションシステムにおけるオブジェクトを表す。ある実施形態では、サードパーティアプリケーションは、１つ以上のグループベースコミュニケーションオブジェクトに対してアクションを実行することが許可される。それぞれのグループベースコミュニケーションオブジェクトは、グループベースコミュニケーションシステムにおける特定のグループベースコミュニケーションオブジェクトをユニークに特定するオブジェクト識別子と、グループベースコミュニケーションオブジェクトが属するオブジェクトのカテゴリーを記述するオブジェクトタイプとを有する。
【００５３】
ここで用いられるように、「グループベースコミュニケーションアクション」という語は、サードパーティアプリケーションがグループベースコミュニケーションオブジェクトについてとり得るアクションを表す。グループベースコミュニケーションアクションは、例えば、メッセージをポストすること、メッセージを読むこと、メッセージを変更すること、メッセージについての情報にアクセスすること、メッセージ内のファイル、絵文字、インタラクティブエレメント等のようなコンテンツにアクセスすること、特定のチャンネルにメッセージをポストするためにワンウェイのウェブフックを作ること、メッセージ中のＵＲＬを閲覧すること、ユーザプロフィールを変更すること、ワークスペースにコマンドを追加すること、ファイル及び関連付けられた情報にアクセスすること、ユーザのアイデンティティを確認すること等を備え得る。
【００５４】
ここで用いられるように、「許可」という語は、（１）サードパーティアプリケーションがアクセス権を有するグループベースコミュニケーションシステム内のグループベースコミュニケーションオブジェクト、及び（２）そのようなグループベースコミュニケーションオブジェクトについてサードパーティアプリケーションがとり得るアクションを定義するグループベースコミュニケーションアクションを表す。ある実施形態では、サードパーティアプリケーションに付与された許可は、グループベースコミュニケーションリポジトリ１０７を介して記憶され、互いにマッピングされる。
【００５５】
ここで用いられるように、「候補グループベースコミュニケーションオブジェクトセット」という語は、共通のグループ識別子を共有するユーザのグループに属する全てのユーザに利用可能な全てのグループベースコミュニケーションオブジェクトを表す。仮にグループベースコミュニケーションオブジェクトのうちの一部が、そのグループのうちの一部のユーザに利用可能であって、他のユーザには利用可能ではないとしても、これらグループベースコミュニケーションオブジェクトは、候補グループベースコミュニケーションオブジェクトセットを備える。
【００５６】
ここで用いられるように、「候補グループベースコミュニケーションアクションセット」という語は、与えられたグループベースコミュニケーションオブジェクトについて潜在的に利用可能である全てのグループベースコミュニケーションアクションを表す。換言すれば、候補グループベースコミュニケーションアクションは、グループベースコミュニケーションシステムが、サードパーティアプリケーションに、グループベースオブジェクトに対して取ることを可能にし得るアクションである。例えば、ある実施形態では、サードパーティアプリケーションは、それに関連付けられたアプリユーザアカウントを介して、グループベースコミュニケーションチャンネルにおいて、メッセージにアクセスし、メッセージをポストし、及びファイル、絵文字等のような全てのコンテンツにアクセスする能力が潜在的に付与され得る。よって、グループベースコミュニケーションチャンネルにおいてメッセージを読むこと、メッセージを書くこと、及びコンテンツにアクセスすることは、候補グループベースコミュニケーションアクションセットを備える。追加の例として、ある実施形態では、サードパーティアプリケーションは、それに関連付けられたアプリユーザアカウントを介して、ユーザアカウントに関連付けられたグループについての基本情報にアクセスし、ユーザアカウントに関連付けられたグループを変更し、プロフィール及びユーザアカウントのプロフィール内の要素にアクセスし、ユーザアカウントに関連付けられたプロフィールを変更し、プロフィール内の情報にアクセスし、ユーザアカウントが関連付けられたグループに関連付けられた他のユーザの電子メールアドレスを閲覧し、及びユーザアカウントに関連付けられたプロフィールにおける情報を変更する能力を潜在的に付与され得る。ユーザアカウントに関するこれらの可能なアクションは、グループベースコミュニケーションオブジェクトである、そのユーザアカウントについての候補グループベースコミュニケーションアクションセットを備える。
【００５７】
ここで用いられるように、「許可されたグループベースコミュニケーションオブジェクトセット」という語は、アプリユーザアカウントがアクセス権を有するグループベースコミュニケーションオブジェクトのセットを表す。これら許可されたグループベースオブジェクトは、追加の許可をアプリユーザアカウントに（よってそのようなアプリユーザアカウントに関連付けられたサードパーティアプリケーションに）追加又は付与し得るユーザによってコンフィギュラブルである。ある実施形態では、アプリユーザアカウントの許可されたグループベースオブジェクトセットのレコードは、グループベースコミュニケーションリポジトリに記憶される。
【００５８】
ここで用いられるように、「許可されたグループベースコミュニケーションアクションセット」という語は、許可されたグループベースコミュニケーションオブジェクトについてアプリユーザが行うことを許される、グループベースコミュニケーションアクション群のセットを表す。許可されたグループベースコミュニケーションアクションのこのセットは、アプリユーザアカウントについて許可を追加し得るユーザによってコンフィギュラブルである。アプリユーザの許可されたグループベースコミュニケーションアクションセットのレコードは、グループベースコミュニケーションリポジトリに記憶される。
【００５９】
ここで用いられるように、「グループベースコミュニケーションスコープ」という語は、（ａ）オブジェクトタイプ及び（ｂ）グループベースコミュニケーションアクションのペアリングを表す。このようにして、グループベースコミュニケーションスコープは、グループベースコミュニケーションアクション及びグループベースコミュニケーションシステムの関連付けられたオブジェクトタイプを定義する。例えば、コンテキストを提供するために、サードパーティアプリケーションに許可を付与することは、グループベースコミュニケーションスコープをサードパーティアプリケーションに付与することを備え得る。このようにして、サードパーティアプリケーションは、グループベースコミュニケーションアクション（グループベースコミュニケーションスコープによって定義される）を、（ｉ）サードパーティアプリケーションの許可されたグループベースコミュニケーションオブジェクトセットに含まれ、（ｉｉ）グループベースコミュニケーションスコープによって特定されたオブジェクトタイプとしてカテゴライズされるグループベースコミュニケーションオブジェクトに対して実行し得る。この例では、サードパーティアプリケーションは、グループベースコミュニケーションスコープにおいて特定されたオブジェクトタイプとしてカテゴライズされたグループベースコミュニケーションアクションに対してだけ実行し得る。
【００６０】
ここで用いられるように、「許可テーブル」という語は、許可されたグループベースコミュニケーションオブジェクトセットを記憶するデータ構造を表す。許可テーブルは、さらにグループベースコミュニケーションオブジェクトセットをサードパーティアプリケーションに関連付ける。例として、許可テーブルは、サードパーティアプリケーションをユニークに特定するアプリ識別子、グループベースコミュニケーションシステムにおける特定のグループベースコミュニケーションオブジェクトをユニークに特定するグループベースコミュニケーションオブジェクト識別子、グループベースコミュニケーションオブジェクト識別子によって特定されたグループベースコミュニケーションオブジェクトの大まかなタイプ（例えば、そのタイプがグループベースコミュニケーションチャンネル、グループコミュニケーションユーザ、プライベートグループベースコミュニケーションチャンネル、ファイル、絵文字等）を特定するグループベースコミュニケーションオブジェクトタイプ記述子、グループベースコミュニケーションシステムにおけるグループをユニークに特定するグループ識別子、及び記憶されたグループベースコミュニケーションオブジェクトに関連付けられた許可をユニークに特定する許可識別子を記憶し、互いを関連付ける。
【００６１】
例えば、ある実施形態では、許可テーブルは、グループベースコミュニケーションサーバによって生成され、このサーバは、許可テーブルをグループベースコミュニケーションリポジトリに記憶する。ある実施形態では、グループベースコミュニケーションシステムは、グループ当たり１つの許可テーブルだけを維持し得る。その場合、許可テーブルは、そのグループ識別子を介してグループと関連付けられ、よって、許可テーブルは、グループ内のグループベースコミュニケーションオブジェクトと、グループベースコミュニケーションオブジェクトについての許可を有するサードパーティアプリケーションとの間の全てのマッピング関連付け（mapping associations）を含む。
【００６２】
ここで用いられるように、「グループベースコミュニケーションオブジェクト許可インタフェース」という語は、クライアントデバイスのディスプレイスクリーン上での表示のためにレンダリングされる時に、クライアントデバイスのユーザに、アプリユーザアカウントについて許可を付与する能力を提供する、グループベースコミュニケーションシステムによって生成された電子的通知を表す。ある実施形態では、グループベースコミュニケーションオブジェクト許可インタフェースは、ユーザが、サードパーティアプリケーションの許可に含まれるべきグループベースコミュニケーションオブジェクト及びグループベースコミュニケーションアクションをグラニュラリティに基づいて選択することを可能にする。他の実施形態では、オブジェクト許可インタフェースは、ユーザが、予め定義されたセットのグループベースコミュニケーションオブジェクト又はアクションを承認（grant）又は拒否（deny）することを可能にするだけである（よって、ユーザは、複数の選択肢の中からグループベースコミュニケーションオブジェクト又はアクションを選択できない）。ある実施形態では、グループベースコミュニケーションオブジェクト許可インタフェースは、サードパーティアプリケーションがグループベースコミュニケーションチャンネルへのアクセスをリクエストしていることの表示をクライアントデバイスのユーザに提供し得て、グループベースコミュニケーションオブジェクト許可インタフェースは、そのようなグループベースコミュニケーションチャンネルへのアクセスを承諾するか、又はアクセスを拒否するかのオプションを提供する。
【００６３】
ここで用いられるように、「許可アップデートインタフェース」という語は、クライアントデバイスのディスプレイスクリーン上に表示のためにレンダリングされる時に、許可されたグループベースコミュニケーションオブジェクトセットにおけるグループベースコミュニケーションオブジェクト及び／又は許可されたグループベースコミュニケーションアクションセットにおけるグループベースコミュニケーションアクションに関連する許可を変更する能力をクライアントデバイスのユーザに提供する、グループベースコミュニケーションシステムによって生成されたインタラクティブインタフェースの特定のタイプを表す。一般に、許可アップデートインタフェースは、利用可能なグループベースコミュニケーションオブジェクト及びグループベースコミュニケーションアクションの中からユーザが選択的に選ぶことを可能にすることによって、ユーザがサードパーティアプリケーションについての許可をアップデートできるようにする。
【００６４】
ここで用いられるように、「サードパーティアプリケーション識別子」という語は、グループベースコミュニケーションシステム内のサードパーティリソースが特定され得る、データの１つ以上のアイテムを表す。例えば、サードパーティリソース識別子は、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス等を含み得る。
【００６５】
ここで用いられるように、「トリガ識別子」は、グループベースコミュニケーションシステムにおける２つのオブジェクトの間のインタラクションを特定する１つ以上のアイテムを表す。このトリガ識別子は、例えば、インタラクションの参加者、インタラクションの時刻、インタラクションの位置等のようなインタラクションに関する情報を含むポインタであり得る。トリガ識別子は、その代わりに又は追加として、ＡＳＣＩＩテキスト、ポインタ、メモリアドレス等を含み得る。ある実施形態では、トリガ識別子は、グループベースコミュニケーションシステムがそれを作った後、有限時間の間だけ有効であり得る。
【００６６】
ここで用いられるように、「承認付与」（authorization grant）という語は、ユーザがリクエストを承認すること（to grant a request）を選択したことを示す信号をクライアントデバイスから受信することに応答して、グループベースコミュニケーションサーバが生成する信号を表す。承認付与信号は、ユーザがリクエストを承認したことを受信者に通知する一時的コードを介して表現され得る。例えば、ある実施形態では、グループベースコミュニケーションサーバは、アプリトークンをサードパーティアプリケーションプロバイダに発行するために、OAuth 2.0フローの一部として承認付与を利用する。
【００６７】
ここで用いられるように、「App DM」（アプリ  ダイレクトメッセージ）という語は、アプリユーザアカウントに関連付けられ、許可されたユーザ又は発信元ユーザと、当該アプリユーザアカウントに関連付けられたサードパーティアプリケーション又はサードパーティアプリケーションプロバイダとの間のコミュニケーションを促進するよう構成されたグループベースコミュニケーションインタフェースを表す。このApp DMは、グループベースコミュニケーションシステムの他のメンバによってアクセス可能及び／又は検索可能ではないように、制限されたアクセスのために構成される。それぞれのApp DMは、１つのサードパーティアプリケーションだけに関連付けられている（例えばApp DMのためのApp DM識別子は、そのサードパーティアプリケーションが有効化／認証された後には、サードパーティアプリケーションのアプリユーザアカウントに関連付けられている）。
【００６８】
例えば、ある実施形態では、グループベースコミュニケーションサーバは、Ｎ人のグループベースコミュニケーションシステムユーザについて、Ｎ個のApp DMを提供し得る。これらの実施形態において、Ｎ人のユーザのそれぞれは、そのようなApp DMの１個だけにアクセスし得る。これらの実施形態において、全てのＮ人のグループベースコミュニケーションシステムユーザは、アプリユーザアカウントに提供された許可をそれらがアップデートし得るように、アプリユーザアカウントを再設定する（re-configure）ことが許可され得る。これら実施形態の変化形においては、Ｎ−Ｘ人のユーザからなるサブセットが、Ｎ−Ｘ人のユーザのサブセットだけがアプリユーザアカウントに提供された許可をアップデートし得るように、アプリユーザアカウントを再設定することが許可され得る。よって、アプリユーザアカウントを再設定することが許可されない残りのＸ人のユーザからなるサブセットは、以下にさらに説明されるように、アプリユーザアカウントに付与された許可を見て、アプリユーザアカウントと通信するためだけにApp DMにアクセスし得る。しかし、残りのＸ人のユーザからなるサブセットは、アプリユーザアカウントに提供された許可をアップデートし得ない。
【００６９】
さらに他の実施形態では、１人のグループベースコミュニケーションシステムユーザだけがApp DMにアクセスする許可を有する（例えばApp DMについてのApp DM識別子は、そのユーザが許可されたユーザとして有効化／認証された後に、選択されたユーザプロフィールに関連付けられる）。この許可されたユーザは、アプリユーザアカウントを再設定する（例えばアプリユーザアカウントに提供された許可をアップデートする）ことが許可される唯一のユーザでもある。この特定の実施形態では、App DMは、１人より多いグループベースコミュニケーションシステムユーザによってアクセスされ得ないかもしれないことに注意されたい。
【００７０】
ある実施形態では、それぞれのApp DMは、App DMにアクセスできるユーザによってポストされたコミュニケーションを表示するよう追加として構成され得る。この意味で、App DMは、App DMグループベースコミュニケーションチャンネルを備える。App DMの特性の結果、App DMにポストされたメッセージは、App DM、App DMに関連付けられたサードパーティアプリケーション、及びApp DMに関連付けられたサードパーティアプリケーションプロバイダにアクセスする許可を有するユーザだけにしか閲覧できない。ある実施形態では、App DMは、App DMに関連付けられたサードパーティアプリケーションによってApp DMにポストされたコミュニケーションを表示するよう追加として構成される。
【００７１】
ある実施形態では、グループベースコミュニケーションサーバは、グループベースコミュニケーションシステムユーザによって用いられているクライアントデバイスのディスプレイスクリーン上に表示されるインタラクティブインタフェースとしてApp DMをレンダリングし得る。グループベースコミュニケーションサーバは、App DMインタラクティブインタフェースをタブ付き（tabbed）ドキュメントインタフェースとして表示し、ここでそれぞれのタブは、App DMの異なる機能及び／又は異なる特徴へのアクセスを提供する。あるそのような実施形態においては、例えば、App DMの１つのタブは、ユーザ及びサードパーティアプリケーションの間で交換されたメッセージのレコード又は履歴へのアクセスを提供し得る。この実施形態では、他のタブは、例えば、候補グループベースコミュニケーションオブジェクトセット、許可されたグループベースコミュニケーションオブジェクトセット、候補グループベースコミュニケーションアクションセット、許可されたグループベースコミュニケーションアクションセット、サードパーティアプリケーションに関連付けられたサードパーティアプリケーションプロバイダのＵＲＩ等を表示することによって、サードパーティアプリケーションの設定及び／又はそのサードパーティアプリケーションに関連付けられたアプリユーザアカウントのグラフィカル表現を提供し得る。ある実施形態では、同じタブは、ユーザに、サードパーティアプリケーション及び／又はアプリユーザアカウントの設定及び／又は許可を変更することを可能にし得る。ある実施形態では、異なるタブは、ユーザが、サードパーティアプリケーション及び／又はアプリユーザアカウントの設定及び／又は許可を変更することを可能にし得る。
【００７２】
ここで用いられるように、「App DMオブジェクト」という語は、１つのアプリユーザアカウント（よって１つのサードパーティアプリだけ）及びユーザだけに関連付けられたグループベースコミュニケーションオブジェクトを表す。App DMオブジェクトは、グループベースコミュニケーションシステム及びグループベースコミュニケーションクライアントによって用いられることによって、ディスプレイスクリーン上にApp DMをレンダリングし得る、コンピュータコードの形態である命令を含み、又はそのような命令にアクセスできる。加えて、App DMオブジェクトは、App DMの機能を実現する命令及びデータ構造を含み、又はそのような命令及びデータ構造にアクセスできる。例えば、それらの命令又はデータ構造は、どのユーザがApp DMオブジェクトに関連付けられたアプリユーザアカウントの許可を設定することが許されているかについての情報を含む。App DMオブジェクトは、ユーザ、及びApp DMオブジェクトに関連付けられたアプリユーザアカウントに関連付けられたサードパーティアプリケーションによってポストされたメッセージングコミュニケーションを表示するよう構成された仮想コミュニケーションフィードも提供する。その意味で、App DMオブジェクトは、App DMグループベースコミュニケーションチャンネルを備える。仮想コミュニケーションフィードは、グループベースコミュニケーションシステムの１人のユーザだけによってアクセス可能である。よって、App DMオブジェクトは、グループのそれぞれのユーザについて、１つの分離したプライベート仮想コミュニケーションフィードを提供するよう構成され、そのようなフィードは、グループの対応するユーザ、及びApp DMオブジェクトに関連付けられたサードパーティアプリケーションによってのみアクセス可能である。しかし、任意の与えられたサードパーティアプリケーションは、複数のApp DMオブジェクトへのアクセス権を有し得ることに注意されたい。さらに、App DMオブジェクトは、許可されたグループベースコミュニケーションオブジェクトセットに含まれることによって、サードパーティアプリケーションは、App DMオブジェクトについて、許可されたグループベースコミュニケーションアクションが与えられ得る。例えば、サードパーティアプリケーションは、App DMオブジェクトにおいて読み書きをすることが許可され得る。
【００７３】
ある実施形態では、App DMオブジェクト及びApp DMの動作を可能にするのに要求されるデータ／命令に対応するデータ構造は、サードパーティアプリケーションプロバイダに関連付けられたネットワークデバイス中に、グループベースコミュニケーションリポジトリ中に、App DMオブジェクトへのアクセス権を有するユーザによって用いられるクライアントデバイス中に、又は代替として、これら３つの任意の組み合わせの中に、記憶され、維持され、かつ割当され得る。
【００７４】
ここで用いられるように、「チャンネルオブジェクトセット」という語は、特定のグループベースコミュニケーションチャンネルに関連付けられた全てのグループベースコミュニケーションオブジェクトを表す。このようにして、グループベースコミュニケーションオブジェクトのそれぞれは、共通のチャンネル識別子を共有する。典型的には、チャンネルオブジェクトセットは、チャンネルを介してユーザによってアクセス可能な、それらのグループベースコミュニケーションオブジェクトを含む。例えば、チャンネルオブジェクトセットは、例えば、ファイル、絵文字、リンク、ユーザ、アプリユーザアカウント、及びグループベースコミュニケーションチャンネルを埋めるか、又はグループベースコミュニケーションチャンネルに関連付けられた、任意の他のグループベースコミュニケーションオブジェクトを含み得る。
【００７５】
概観
本開示のさまざまな実施形態は、グループベースコミュニケーションシステム内のグループベースコミュニケーションオブジェクトへのアクセスを、サードパーティアプリケーションに選択的に付与する方法に一般的には関する。実施形態は、サードパーティアプリケーションがアクセスし得るグループベースコミュニケーションオブジェクトに対するコントロールをユーザに与える。さらに、実施形態は、それらグループベースコミュニケーションオブジェクトについてサードパーティアプリケーションが取り得るアクションに対するコントロールをユーザに与える。
【００７６】
さまざまな実施形態は、グループベースコミュニケーションシステム内のサードパーティアプリケーションを統合する効率的な方法も提供する。サードパーティアプリケーションは、共通のグループ識別子を有する、複数のユーザを備えるグループ上にインストールされることによって、そのグループに属するどのユーザも、サードパーティアプリケーションに付与された許可を所有し、アクセスし、かつ変更し得る。システムのある変形例では、実際的理由から、共通のグループ識別子を有する複数のユーザのうちのサブセットだけがアクセス権を有し、サードパーティアプリケーションに付与された許可を変更してもよい。しかし、この変化形においてさえ、共通のグループ識別子を有する複数のユーザは、サードパーティアプリケーションへのアクセス権を有し、かつサードパーティアプリケーションを利用し得る。
【００７７】
このようにして、さまざまな実施形態は、改良されたグループベースコミュニケーションシステムを提供する。例えば、サードパーティアプリケーションをここで開示されるグループベースコミュニケーションシステムのようなシステムに統合する従来の方法は、そのシステム内のユーザ又はグループにアクセス可能な全てのグループベースコミュニケーションオブジェクトに対するアクセス権をサードパーティアプリケーションに付与することを含んでいたかもしれない。しかし開示されている実施形態は、ユーザが、サードパーティアプリケーションのアクセスを、ユーザによって選択され許可されたグループベースコミュニケーションオブジェクトだけに制限できるようにする。よって、グループベースコミュニケーションシステムは、サードパーティアプリケーションにアクセス可能なグループベースコミュニケーションオブジェクトに対する粒度コントロール（granular control）をユーザに提供する。他の局面では、従来の方法は、そのサードパーティアプリケーションにアクセス可能であるグループベースコミュニケーションオブジェクトに対して、全ての可能性のある候補グループベースコミュニケーションアクションを実行する能力をサードパーティアプリケーションに許可することを含んでいたかもしれない。対照的に、開示された実施形態は、サードパーティアプリケーションにアクセス可能である許可されたグループベースコミュニケーションオブジェクトセットについてサードパーティアプリケーションが取り得るアクションのタイプ、すなわち許可されたグループベースコミュニケーションアクションセットを、ユーザが制限できるという改良を提供する。
【００７８】
さまざまな実施形態の他の局面において、ユーザは、サードパーティアプリケーションの許可されたグループベースコミュニケーションオブジェクトセット及び関連付けられた許可されたグループベースコミュニケーションアクションセットへの追加又は変更を許可することによって、サードパーティアプリケーションへの許可を漸進的に付与し得る。これら許可の変更は、新しいアプリトークンを要求しないので、開示されているさまざまな実施形態は、サードパーティアプリケーションのグループベースコミュニケーションシステムへの効率的な統合を提供する。これら記載された特徴によって与えられる利点は、少なくとも、限定ではなく、グループ内でサードパーティアプリケーションがとり得るアクションのタイプを、グループ内のそれぞれのユーザが適応させることができるようにする、よりユーザフレンドリーなグループベースコミュニケーションシステムを含む。これは、少なくとも、エンドユーザーがサードパーティアプリケーションを再認証することを要求せずに、サードパーティアプリケーションに追加の許可を付与するシステムの能力の結果である。これは、究極的には、グループベースコミュニケーションシステムを利用しながら、ユーザエクスペリエンスの融通性及びカスタマイゼーションを向上させる。
【００７９】
最後に、開示されているさまざまな実施形態は、グループベースコミュニケーションシステムにサードパーティアプリケーションをインストール及びアンインストールする効率的な方法を提供するが、これは、サードパーティアプリケーションがグループレベルでインストールされているからである。これは、サードパーティアプリケーションがユーザレベルでインストールされているフレームワークよりも優位性をもつ。例えば、従来の方法では、サードパーティアプリケーションに関連付けられた機能を利用することに興味をもつそれぞれのユーザは、サードパーティアプリケーションのインストールをリクエストする必要があったが、これは、それぞれのユーザのインストールについて新しい認証プロセス及び新しいトークンを要求していた。対照的に、開示されている実施形態は、改良を提供するが、それは、本実施形態は、サードパーティアプリケーションのアイデンティティを認証するのに要求されるトークンの個数、及びグループベースコミュニケーションシステムにサードパーティアプリケーションを統合するのに要求される認証フローの個数を減らすからである。
【００８０】
他の例として、従来の方法では、サードパーティアプリケーションをユーザアカウントに関連付けることは、ユーザアカウントがグループから削除又はシステムから消去される場合に関連した、不安定性及び設計上の困難を生じていた。対照的に、開示された実施形態は、アプリケーションは、グループレベルにおいてインストールされるので、より堅牢なグループベースコミュニケーションシステムを提供する。この特徴は、サードパーティアプリケーション及びその関連付けられたアプリユーザアカウントをグループベースコミュニケーションユーザの追加及び削除から分離する。よって、開示されている発明によって実現される利点の一つは、少なくとも、限定なしで、サードパーティアプリケーションをグループベースコミュニケーションシステムに統合するのに要求されるデータ構造及び機能の低減された個数の結果として、及びサードパーティアプリケーションを、ユーザではなくグループと関連付けることの結果として、アプリケーション開発者及びサードパーティアプリケーションプロバイダにとってもフレンドリーである、より安定したシステムを含む。
【００８１】
ここで説明される優位性のある改良点及び実施形態の最終的かつ自然の結果は、より効率的なデータネットワーク及びグループベースコミュニケーションシステムである。換言すれば、ネットワークを介して生成及び伝送されるべきデータの低減された量の結果として、これは、グループベースコミュニケーションシステム内でのサードパーティアプリケーションの統合を実現するのに要求される低減された個数のトークン及び承認フローからの自然の結果であるが、本発明は、グループベースコミュニケーションシステムをサポートするネットワークを介した、向上した効率及び関連する電子データのスループットを提供する。さらに、グループベースコミュニケーションシステム内で実現される他の機能は、システムのコア動作のために必要かもしれないが、サードパーティアプリケーションをグループベースコミュニケーションシステム内に統合する時に要求される認証フローの低減された個数のために、より速い速度で実行され得る。開示されている本発明の他の結果としては、グループベースコミュニケーションシステムは、その実現のためのインフラストラクチャ要件を下げると共に、同じパフォーマンス結果を維持するグループベースコミュニケーションシステムの実現を可能にする。これは、再び、サードパーティアプリケーションを統合するのに要求されるデータ構造及びフローの低減された個数の結果である。ここで開示された本発明は、サードパーティアプリケーションを統合するためにトークン及び認証を要求する他のシステムに適用され得て、よって、本開示において提供される解決策は、より効率的なシステム及びデータネットワークを得るために採用され得る。
【００８２】
例示的システムアーキテクチャ
本発明の方法、装置、及びコンピュータプログラム製品は、さまざまなデバイスの任意のものによって実現され得る。例えば、例示的実施形態の方法、装置、及びコンピュータプログラム製品は、１つ以上のクライアントデバイスのような１つ以上のデバイスと通信するよう構成されるサーバ又は他のネットワークエンティティのようなネットワーク接続されたデバイス（例えばエンタープライズプラットフォーム）によって実現され得る。追加として又は代替として、計算デバイスは、パーソナルコンピュータ又はコンピュータワークステーションのような固定された計算デバイスを含み得る。さらに例示的実施形態は、携帯デジタルアシスタント（ＰＤＡ）、携帯電話、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルデバイス、又は前述のデバイスの任意の組合せのような、さまざまなモバイルデバイスの任意のものによって実現され得る。
【００８３】
図１は、本発明の実施形態が動作し得る例示的計算システム１００を示す。ユーザは、クライアントデバイス１０１Ａ−１０１Ｎを用いて通信ネットワーク１０４を介してグループベースコミュニケーションシステム１０５にアクセスし得る。グループベースコミュニケーションシステム１０５は、少なくとも１つのグループベースコミュニケーションリポジトリ１０７と通信するグループベースコミュニケーションサーバ１０６を備え得る。
【００８４】
通信ネットワーク１０４は、例えば、それを実現するのに要求される任意のハードウェア、ソフトウェア及び／又はファームウェア（例えばネットワークルータ等のような）と共に、有線又は無線ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）等を含む任意の有線又は無線通信ネットワークを含み得る。例えば、通信ネットワーク１０４は、セルラー式電話、８０２．１１、８０２．１６、８０２．２０、及び／又はＷｉＭａｘネットワークを含み得る。さらに、通信ネットワーク１０４は、インターネットのような公衆ネットワーク、イントラネットのようなプライベートネットワーク、又はそれらの組合せを含み得て、ＴＣＰ／ＩＰベースのネットワーキングプロトコルを含むがこれには限定されない、現在利用可能な又は将来開発されるさまざまなネットワーキングプロトコルを利用し得る。例えば、ネットワーキングプロトコルは、グループベースコミュニケーションシステムの要求に合うようにカスタマイズされ得る。ある実施形態では、プロトコルは、ウェブソケットチャンネルを介して送られるJavaScript Object Notation（ＪＳＯＮ）オブジェクトのカスタムプロトコルである。ある実施形態では、プロトコルは、ＪＳＯＮ−ＲＰＣ、ＪＳＯＮ−ＲＥＳＴ／ＨＴＴＰ等である。
【００８５】
グループベースコミュニケーションサーバ１０６は、この技術分野で知られるようにコンピュータ又はコンピュータ群として実現され得る。グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａ−１０１Ｎには必ずしも限定されないがこれらを含むさまざまなソースからの電子データの受信のために設けられ得る。例えば、グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａ−１０１Ｎによって提供されたグループベースメッセージングコミュニケーションを受信及びポスト又は送信するよう動作可能であり得る。
【００８６】
グループベースコミュニケーションリポジトリ１０７は、ネットワークアタッチトストレージ（ＮＡＳ）装置又は装置群のようなデータ記憶装置として、又は別個のデータベースサーバ又はサーバ群として実現され得る。グループベースコミュニケーションリポジトリ１０７は、グループベースコミュニケーションシステム１０５の動作を促進するためにグループベースコミュニケーションサーバ１０６によってアクセスされ記憶される情報を含む。例えば、グループベースコミュニケーションリポジトリ１０７は、複数のグループベースコミュニケーションチャンネル及び／又はその他の間で組織化された複数のメッセージングコミュニケーションを限定ではなく含み得る。
【００８７】
クライアントデバイス１０１Ａ−１０１Ｎは、上で定義されたような任意の計算デバイスであり得る。クライアントデバイス１０１Ａ−１０１Ｎからグループベースコミュニケーションサーバ１０６によって受信された電子データは、さまざまな形態で、かつさまざまな方法を介して提供され得る。例えば、クライアントデバイス１０１Ａ−１０１Ｎは、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、ネットブック、タブレットコンピュータ、ウェアラブルデバイス等を含み得る。
【００８８】
クライアントデバイス１０１Ａ−１０１Ｎが、スマートフォン又はタブレットのようなモバイルデバイスである実施形態においては、クライアントデバイス１０１Ａ−１０１Ｎは、グループベースコミュニケーションシステム１０５と相互作用するために「アプリ」を実行し得る。そのようなアプリは、タブレット又はスマートフォンのようなモバイルデバイス上で動作するように典型的には設計される。例えば、アプリは、iOS（登録商標）、Android（登録商標）、又はWindows（登録商標）のようなモバイルデバイスオペレーティングシステム上で動作するよう提供され得る。これらプラットフォームは、アプリが互いに、及びモバイルデバイスの特定のハードウェア及びソフトウェア要素と通信することを可能にするフレームワークを典型的には提供する。例えば、上で挙げられたモバイルデバイスオペレーティングシステムは、それぞれ、位置サービス回路、有線及び無線ネットワークインタフェース、ユーザコンタクト、及び他のアプリケーションと相互作用するためのフレームワークを提供する。アプリの外で動作するハードウェア及びソフトウェアモジュールとの通信は、モバイルデバイスオペレーティングシステムによって提供される少なくとも１つのアプリケーションプログラムインタフェース（ＡＰＩ）を介して典型的には提供される。
【００８９】
追加として又は代替として、クライアントデバイス１０１Ａ−１０１Ｎは、ウェブブラウザを介してグループベースコミュニケーションシステム１０５と相互作用し得る。さらに他の例として、クライアントデバイス１０１Ａ−１０１Ｎは、グループベースコミュニケーションシステム１０５とインタフェースするよう設計されたさまざまなハードウェア又はファームウェアを含み得る。
【００９０】
例示的グループベースコミュニケーションシステム１０５のある実施形態では、メッセージ又はメッセージングコミュニケーションは、クライアントデバイス１０１Ａ−１０１Ｎからグループベースコミュニケーションシステム１０５に送られ得る。さまざまな実現例において、メッセージは、クライアントデバイス１０１Ａ−１０１Ｎによって直接に、通信ネットワーク１０４を通じてグループベースコミュニケーションシステム１０５に送られてもよく、メッセージは、メッセージサーバ及び／又はその他のような媒介を介してグループベースコミュニケーションシステム１０５に送られてもよい。例えば、クライアントデバイス１０１Ａ−１０１Ａは、デスクトップ、ラップトップ、タブレット、スマートフォン、及び／又はクライアントアプリケーションを実行しているもの（例えばグループベースコミュニケーションアプリ）であり得る。ある実現例では、メッセージは、メッセージ識別子、送信ユーザ識別子、グループ識別子、グループベースコミュニケーションチャンネル識別子、メッセージコンテンツ（例えばテキスト、絵文字、画像、リンク）、添付物（例えばファイル）、メッセージ階層データ（例えばそのメッセージは、他のメッセージの応答であり得る）、サードパーティメタデータ、及び／又はその他のようなデータを含み得る。ある実施形態では、クライアントデバイス１０１Ａ−１０１Ｎは、以下に示されるような、エクステンシブルマークアップランゲージ（「ＸＭＬ」）でフォーマットされたデータを含む、（セキュア）ハイパーテキストトランスファプロトコル（「ＨＴＴＰ（Ｓ）」）ＰＯＳＴメッセージの形態を実質的にとる、以下の例示的メッセージを提供し得る。
【００９１】
POST /authrequest.php HTTP/1.1
Host: www.server.com
Content-Type: Application/XML
Content-Length: 667
<?XML version = “1.0” encoding = “UTF-8”?>
<auth_request>
<timestamp>2020-12-31 23:59:59</timestamp>   
<user_accounts_details>
<user_account_credentials>
<user_name>ID_user_1</user_name>
<password>abc123</password>
//OPTIONAL <cookie>cookieID</cookie>
//OPTIONAL <digital_cert_link>www.mydigitalcertificate.com/ JohnDoeDaDoeDoe@gmail.com/mycertifcate.dc</digital_cert_link>
//OPTIONAL <digital_certificate>_DATA_</digital_certificate>
</user_account_credentials>
</user_accounts_details>
<client_details> //iOS Client with App and Webkit
//it should be noted that although several client details
//sections are provided to show example variants of client
//sources, further messages will include only on to save
//space
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53</user_agent_string>
<client_product_type>iPhone6,1</client_product_type>
<client_serial_number>DNXXX1X1XXXX</client_serial_number>
<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>
<client_OS>iOS</client_OS>
<client_OS_version>7.1.1</client_OS_version>
<client_app_type>app with webkit</client_app_type>
<app_installed_flag>true</app_installed_flag>
<app_name>MSM.app</app_name>
<app_version>1.0 </app_version>
<app_webkit_name>Mobile Safari</client_webkit_name>
<client_version>537.51.2</client_version>
</client_details>
<client_details> //iOS Client with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53</user_agent_string>
<client_product_type>iPhone6,1</client_product_type>
<client_serial_number>DNXXX1X1XXXX</client_serial_number>
<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>
<client_OS>iOS</client_OS>
<client_OS_version>7.1.1</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>9537.53</client_version>
</client_details>
<client_details> //Android Client with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Nexus S Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30</user_agent_string>
<client_product_type>Nexus S</client_product_type>
<client_serial_number>YXXXXXXXXZ</client_serial_number>
<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID>
<client_OS>Android</client_OS>
<client_OS_version>4.0.4</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>534.30</client_version>
</client_details>
<client_details> //Mac Desktop with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14</user_agent_string>
<client_product_type>MacPro5,1</client_product_type>
<client_serial_number>YXXXXXXXXZ</client_serial_number>
<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID>
<client_OS>Mac OS X</client_OS>
<client_OS_version>10.9.3</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>537.75.14</client_version>
</client_details>
<message>
<message_identifier>ID_message_10</message_identifier>
<team_identifier>ID_team_1</team_identifier>
<channel_identifier>ID_channel_1</channel_identifier>
<contents>That is an interesting invention. I have attached a copy our patent policy.</contents>
<attachments>patent_policy.pdf</attachments>
</message>
</auth_request>
グループベースコミュニケーションシステム１０５は、グループベースコミュニケーションリポジトリ１０７におけるメッセージのインデキシング及び記憶を促進するために、受信されたメッセージに基づいて記憶メッセージを作成し得る少なくとも１つのグループベースコミュニケーションサーバ１０６を備える。ある実施形態では、記憶メッセージは、メッセージ識別子、グループ識別子、グループベースコミュニケーションチャンネル識別子、送信ユーザ識別子、トピックス、レスポンス、メッセージコンテンツ、添付物、メッセージ階層データ、サードパーティメタデータ、会話プリミティブデータ及び／又はその他のようなデータを含み得る。例えば、グループベースコミュニケーションサーバ１０６は、以下に示すような、ＸＭＬでフォーマットされたデータを含む、ＨＴＴＰ（Ｓ）  ＰＯＳＴメッセージの形態を実質的にとる、以下の例示的記憶メッセージを提供し得る。
【００９２】
実施形態において、上で定義されたグループ識別子は、メッセージと関連付けられ得る。
【００９３】
実施形態において、上で定義されたグループベースコミュニケーションチャンネル識別子は、メッセージと関連付けられ得る。
【００９４】
実施形態において、上で定義された送信ユーザ識別子は、メッセージと関連付けられ得る。ある実現例では、メッセージは、そのメッセージを送ったユーザの送信ユーザ識別子を決定するためにパースされ（parsed）得る（例えばＰＨＰ−−すなわち、パーソナルホームページツールから導き出されるスクリプト言語−−コマンドを用いて）。
【００９５】
実施形態において、トピックスは、メッセージと関連付けられ得る。ある実現例では、メッセージコンテンツは、そのメッセージで議論されているトピックスを決定するためにパースされ得る（例えばＰＨＰコマンドを用いて）。例えば、メッセージ中のハッシュタグは、そのメッセージに関連付けられたトピックスを示し得る。他の例では、メッセージは、メッセージに関連付けられたトピックスを決定するために、分析され（例えば、それ自身で、会話プリミティブ中の他のメッセージと共に）、又はトピックモデリングのような機械学習技術を用いてパースされ得る。
【００９６】
実施形態において、応答を示すデータは、そのメッセージと関連付けられ得る。例えば、他のユーザによるメッセージへの応答は、反応（例えばメッセージに関連付けられた絵文字の選択、メッセージに関連付けられた「いいね」ボタンの選択）、メッセージに埋め込まれたハイパーリンクをクリックすること、メッセージへ応答すること（例えばメッセージに応答してグループベースコミュニケーションチャンネルにメッセージをポストすること）、メッセージに関連付けられたファイルをダウンロードすること、あるグループベースコミュニケーションチャンネルから他のグループベースコミュニケーションチャンネルへメッセージをシェアすること、メッセージをピン留めすること、メッセージに星を付けること、及び／又はその他を含み得る。ある実施形態では、他のユーザによるメッセージへの応答に関するデータは、メッセージに含まれ得て、そのメッセージは、応答を決定するためにパースされ得る（例えばＰＨＰコマンドを用いて）。他の実現例では、メッセージへの応答に関するデータは、データベースから取り出され得る。例えば、メッセージに対する応答に関するデータは、以下のようなMySQLデータベースコマンドを介して取得され得る。
SELECT messageResponses
FROM MSM_Message
WHERE messageID = ID_message_10.
例えば、メッセージへの応答に関するデータは、メッセージについてのコンテキスト（例えばメッセージについての、あるユーザの視点からのソーシャルスコア）を決定するのに用いられ得る。他の例では、メッセージへの応答に関連するデータは、ユーザに関するコンテキストを決定するために分析され得る（例えばあるトピックにおけるユーザの経験は、そのトピックに関するユーザのメッセージに対する応答に基づいて決定され得る）。
【００９７】
実施形態において、添付物は、メッセージに含まれ得る。もし添付物が存在するなら、ファイルは、メッセージと関連付けられ得る。ある実現例では、メッセージは、添付物のファイル名を決定するためにパースされ得る（例えばＰＨＰコマンドを用いて）。例えば、ファイルコンテンツは、メッセージについてのコンテキストを決定するために分析され得る（例えば特許ポリシーの文書は、そのメッセージが「特許」というトピックに関連付けられていると表示し得る）。
【００９８】
実施形態において、サードパーティメタデータは、メッセージに関連付けられ得る。例えば、サードパーティメタデータは、会社、グループ、グループベースコミュニケーションチャンネル、及び／又はその他に特有である、メッセージ又はユーザについての追加のコンテキストを提供し得る。ある実現例では、メッセージは、サードパーティメタデータを決定するためにパースされ得る（例えばＰＨＰコマンドを用いて）。例えば、サードパーティメタデータは、メッセージを送ったユーザがグループベースコミュニケーションチャンネルの承認された（authorized）代表者であるかを示し得る（例えば、承認された代表者は、グループベースコミュニケーションチャンネルにおける質問に応答するために会社によって承認され得る）。
【００９９】
実施形態において、会話プリミティブ（conversation primitive）は、メッセージと関連付けられ得る。ある実施形態では、会話プリミティブは、メッセージを分析し、インデックス付けし、記憶し、及び／又はその他をするのに用いられる要素である。例えば、メッセージは、それ自身で分析され得て、それ自身の会話プリミティブを形成し得る。他の例では、メッセージは、会話を構成する他のメッセージと共に分析され得て、会話を構成するメッセージは、会話プリミティブを形成し得る。ある実現例では、会話プリミティブは、当該メッセージ、特定の個数（例えば２）の先行するメッセージ及び特定の個数（例えば２）の後続するメッセージとして決定され得る。他の実現例では、会話プリミティブは、当該メッセージ及び他のメッセージ（例えばそのチャンネルにおける）で議論されているトピック及び／又はこれらメッセージの近接性（例えばメッセージ送信順序の近接性、メッセージ送信時刻の近接性）の分析に基づいて決定され得る。
【０１００】
実施形態においては、上で説明されたように決定されたさまざまなメタデータ及び／又はメッセージのコンテンツは、メッセージをインデックス化する（例えば会話プリミティブを用いて）ことによって、サーチングのさまざまなファセット（すなわちグループベースコミュニケーションリポジトリ１０７から結果を返すサーチクエリ）を促進するために用いられ得る。ある実現例では、記憶メッセージ（storage message）は、グループベースコミュニケーションリポジトリ１０７におけるインデキシングを促進するために、グループベースコミュニケーションサーバ１０６から送信され得る。他の実現例において、メッセージに関連付けられたメタデータが決定され得て、このメッセージは、グループベースコミュニケーションリポジトリ１０７においてインデキシングされ得る。ある実施形態において、メッセージは、会社の又はグループのメッセージが別個にインデックス化されるようにインデックス化され得る（例えば他のグループ及び／又は会社とシェアされていないグループ及び／又は会社に関連付けられた別個のインデックスにおいて）。ある実現例では、メッセージは、別個の分散化されたリポジトリにおいてインデックス化され得る（例えばセキュリティの目的のためにデータ隔離を促進するために）。
【０１０１】
もしメッセージに関連付けられた添付物が存在するなら、その関連付けられたファイルのファイルコンテンツは、サーチングを促進するために、グループベースコミュニケーションリポジトリ１０７においてそのようなファイルをインデックス化するために用いられ得る。ある実施形態においては、ファイルは、別個の分散リポジトリにおいて会社の又はグループのファイルがインデックス化されるように、インデックス化され得る。
【０１０２】
本開示の実施形態を実現する例示的装置
グループベースコミュニケーションサーバ１０６は、図２に示される装置２００のような１つ以上の計算システムによって実現され得る。装置２００は、プロセッサ２０２、メモリ２０１、入力／出力回路２０３、通信回路２０５、グループベースコミュニケーションリポジトリ１０７、及びグループベースコミュニケーション回路２０４を含み得る。装置２００は、ここで説明される操作を実行するよう構成され得る。これら要素は、機能的な限定について記載されているが、具体的な実現例は、特定のハードウェアの使用を必然的に含むことを理解されたい。ここで説明された要素のいくつかは、同様の又は共通のハードウェアも含み得ることも理解されたい。例えば、回路のうちの２つのセットが同じプロセッサ、ネットワークインタフェース、記憶媒体等の使用を活用することで、それらの関連付けられた機能を実行し、重複するハードウェアが回路群のそれぞれのセットごとには必要がないようにしてもよい。装置の要素についてここで用いられるように「回路」という語の使用は、ここで説明されるように、特定の回路と関連付けられた機能を実行するよう構成された特定のハードウェアを含むように理解されなければならない。
【０１０３】
「回路」という語は、ハードウェア、及び実施形態によっては、そのハードウェアを設定するためのソフトウェアを含むように広く理解されるべきである。例えば、実施形態によっては、「回路」は、処理回路、記憶媒体、ネットワークインタフェース、入力／出力装置等を含み得る。ある実施形態では、装置２００の他の要素は、特定の回路の機能を提供又は補完し得る。例えば、プロセッサ２０２は、処理機能を提供し得て、メモリ２０１は、記憶機能を提供し得て、通信回路２０５は、ネットワークインタフェース機能を提供し得る等である。
【０１０４】
ある実施形態においては、プロセッサ２０２（及び／又はコプロセッサ又はプロセッサを補助する又はそうでなければプロセッサに関連付けられた任意の他の処理回路）は、装置の要素の間で情報を受け渡しするためにバスを介してメモリ２０１と通信し得る。メモリ２０１は、非一時的であり、例えば１つ以上の揮発性及び／又は不揮発性メモリを含み得る。換言すれば、例えばこのメモリは、電子記憶装置（例えばコンピュータで読み取り可能な記憶媒体）であり得る。メモリ２０１は、装置２００が、本開示の例示的実施形態に従ってさまざまな機能を実行できるようにするために、情報、データ、コンテンツ、アプリケーション、命令等を記憶するよう構成され得る。
【０１０５】
プロセッサ２０２は、いくつかの異なるやり方で実現され得て、例えば独立して実行するよう構成された１つ以上の処理装置を含み得る。追加として又は代替として、このプロセッサは、命令の独立した実行、パイプライン処理、及び／又はマルチスレッディングを可能にするようにバスを介して並列に構成された１つ以上のプロセッサを含み得る。「処理回路」という語の使用は、装置の内部にあるシングルコアプロセッサ、マルチコアプロセッサ、マルチプロセッサ、及び／又はリモートつまり「クラウド」プロセッサを含むと理解されよう。
【０１０６】
例示的な実施形態においては、プロセッサ２０２は、メモリ２０１に記憶された又はそうでなければプロセッサにアクセス可能である命令を実行するよう構成され得る。代替として又は追加として、このプロセッサは、ハードコードされた機能を実行するよう構成され得る。よってハードウェア又はソフトウェアのいずれの方法によって構成されようとも、又はそれらの組み合わせによって構成されようとも、プロセッサは、そのように構成されている間は、本開示の実施形態による操作を実行することができるエンティティ（例えば回路として物理的に実現される）を表し得る。代替として、他の例として、プロセッサがソフトウェア命令の実行者として実現される時、これら命令は、命令が実行される時に、プロセッサがここに記載されたアルゴリズム及び／又は操作を実行するようにプロセッサを具体的に構成し得る。
【０１０７】
ある実施形態においては、装置２００は、入力／出力回路２０３を含み得て、これが今度は、出力をユーザに提供するために、またある実施形態では、ユーザ入力の表示を受け取るためにプロセッサ２０２と通信し得る。入力／出力回路２０３は、ユーザインタフェースを備え得て、ディスプレイを含み得て、ウェブユーザインタフェース、モバイルアプリケーション、クライアントデバイス、キオスク等を備え得る。ある実施形態では、入力／出力回路２０３は、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチエリア、ソフトキー、マイクロホン、スピーカ、又は他の入力／出力機構を含み得る。プロセッサを備えるプロセッサ及び／又はユーザインタフェース回路は、プロセッサにアクセス可能であるメモリ（例えばメモリ２０１及び／又はその他）上に記憶されたコンピュータプログラム命令（例えばソフトウェア及び／又はファームウェア）を通して１つ以上のユーザインタフェース要素の１つ以上の機能を制御するよう構成され得る。
【０１０８】
通信回路２０５は、装置２００と通信するネットワーク及び／又は任意の他のデバイス、回路、又はモジュールから／へデータを受信及び／又は送信するよう構成される、ハードウェアか、ハードウェア及びソフトウェアの組み合わせかのいずれかで実現されるデバイス又は回路のような任意の手段であり得る。この点で、通信回路２０５は、例えば、有線又は無線の通信ネットワークとの通信を可能にするネットワークインタフェースを含み得る。例えば、通信回路２０５は、１つ以上のネットワークインタフェースカード、アンテナ、バス、スイッチ、ルータ、モデム、及びサポートするハードウェア及び／又はソフトウェア、又はネットワークを介した通信を可能にするのに適切な任意の他のデバイスを含み得る。追加として又は代替として、通信インタフェースは、アンテナ（群）を介した信号の送信を行うために、又はアンテナ（群）を介して受け取られた信号の受信を扱うために、アンテナ（群）と相互作用する回路を含み得る。
【０１０９】
グループベースコミュニケーション回路２０４は、グループベースコミュニケーションシステムをサポートするよう構成されたハードウェアを含む。グループベースコミュニケーション回路２０４は、これらのアクションを実行するためにプロセッサ２０２のような処理回路を利用し得る。グループベースコミュニケーション回路２０４は、グループベースコミュニケーションリポジトリ１０７にデータを送信及び／又はグループベースコミュニケーションリポジトリ１０７から受信し得る。ある実現例では、送信された及び／又は受信されたデータは、複数のグループベースコミュニケーションチャンネルの間で組織化されたエンタープライズベースデジタルコンテンツオブジェクトであり得る。ある実施形態では、グループベースコミュニケーション回路２０４は、別個のプロセッサ、特別に構成されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は特定用途向け集積回路（ＡＳＩＣ）を含み得ることも理解されるべきである。
【０１１０】
上に説明されたように、及び本開示に基づいて理解されるように、本開示の実施形態は、方法、モバイルデバイス、バックエンドネットワークデバイス等として構成され得る。したがって実施形態は、ハードウェアだけを含む、又はソフトウェア及びハードウェアの任意の組み合わせを含むさまざまな手段を備え得る。さらに、実施形態は、記憶媒体内に実現されたコンピュータ読み取り可能なプログラム命令（例えばコンピュータソフトウェア）を有する、少なくとも１つの非一時的コンピュータ読み取り可能な記憶媒体上のコンピュータプログラム製品の形態をとり得る。同様に、実施形態は、少なくとも１つの非一時的コンピュータ読み取り可能な記憶媒体上に記憶されたコンピュータプログラムコードの形態をとり得る。任意の適切なコンピュータ読み取り可能な記憶媒体は、非一時的ハードディスク、ＣＤ−ＲＯＭ、フラッシュメモリ、光学記憶デバイス、又は磁気記憶デバイスを含むようにして利用され得る。
【０１１１】
グループベースコミュニケーションリポジトリ
ここで図３Ａ−図３Ｄを参照すると、グループベースコミュニケーションリポジトリ１０７は、許可テーブル３０１、アプリトークンテーブル３０２、及びオプションであるオブジェクト例外テーブル３０３を備える。グループベースコミュニケーションシステム１０５のそれぞれのアプリユーザアカウントは、許可テーブル３０１及びアプリトークンテーブル３０２に記憶された情報を有する。オプションとして、それぞれのアプリユーザアカウントは、オブジェクト例外テーブル３０３に記憶された情報も有し得る。よって、グループベースコミュニケーションシステム１０５のそれぞれのアプリユーザアカウントは、許可テーブル３０１、アプリトークンテーブル３０２、及び、オプションとして（もし実施形態に含まれるなら）、オブジェクト例外テーブル３０３内にデータベーステーブルエントリを有し得る。図３Ｂに示されるように、ある実施形態では、許可テーブル３０１は、データの中でも特に、許可識別子３０４、グループ識別子３０５、アプリ識別子３０６、グループベースコミュニケーションオブジェクトタイプ記述子３０７、グループベースコミュニケーションオブジェクト識別子３０８、及びブール変数includes_object_exceptions３１５を含む。図３Ｃに示されるように、アプリトークンテーブル３０２は、データの中でも特に、アプリトークン許可識別子３０９、アプリユーザ識別子３１１、グループ識別子３１０、アプリ識別子３１４、グループベースコミュニケーションスコープ記述子３１３、及び暗号列（cryptic string）３１２を含む。図３Ｄに示されるように、オブジェクト例外テーブル（object exceptions table）３０３は、オプションであり、いくつかの実施形態において含まれるに過ぎないが、許可識別子３２１、グループ識別子３２２、アプリ識別子３２３、グループベースコミュニケーションオブジェクトタイプ３２５、グループベースコミュニケーションオブジェクト識別子３２６、除外されたオブジェクトタイプ（excluded object type）３２７、除外されたオブジェクト識別子３２８、及び除外されたグループベースコミュニケーションスコープ３３０を含む。
【０１１２】
３つのテーブル３０１−３０３内のロウエントリは、アプリ識別子３０６，３１４，及び３２３が互いに同一である場合にのみ、同じサードパーティアプリケーションと関連付けられることに注意されたい。アプリ識別子３０６，３１４，及び３２３は、グループベースコミュニケーションシステム内のサードパーティアプリケーションをユニークに特定するデータを含む。同様に、３つのテーブル３０１−３０３内のロウエントリは、グループ識別子３０５，３１０，及び３２２が互いに同一である場合にのみ、同じサードパーティアプリケーションと関連付けられる。グループ識別子３０５，３１０，及び３２２は、複数のユーザをそのメンバとして含み得るグループをユニークに特定するデータを含む（メンバは、また、同じグループ識別子を介してそのグループに関連付けられなければならない）。これら同じ原則が許可識別子３０４及び３２１、及びグループベースコミュニケーションオブジェクト識別子３０８及び３２６に適用される。すなわち、２つのロウエントリは、これら識別子によって保持される値がロウエントリ群にわたって同一である場合にのみ、同じ許可識別子又はグループベースコミュニケーションオブジェクト識別子に関連付けられる。
【０１１３】
許可テーブル３０１は、グループベースコミュニケーションシステム１０５内のサードパーティアプリケーションに選択的に許可を付与することの実現にとって重要である、さまざまなデータフィールドを含む。許可識別子３０４は、許可テーブル内の特定のエントリに関連する許可をユニークに特定する。グループベースコミュニケーションオブジェクト識別子３０８は、許可識別子と関連付けられたグループベースコミュニケーションシステム１０５内の特定のオブジェクトを特定する。グループベースコミュニケーションオブジェクトタイプ３０７は、許可識別子と関連付けられたグループベースコミュニケーションオブジェクトのオブジェクトタイプを特定する。アプリ識別子３０６は、許可識別子と関連付けられたサードパーティアプリケーションをユニークに特定する。このようにして、図３Ｂのそれぞれのロウは、グループベースコミュニケーションオブジェクト、そのオブジェクトタイプ、グループ、及び、グループベースコミュニケーションオブジェクトについて許可を有するサードパーティアプリケーションの間のマッピングを提供する。ある実施形態では、グループベースコミュニケーションサーバは、新しいグループベースコミュニケーションオブジェクトをサードパーティアプリケーションに関連付ける（すなわちそのためのマッピングを追加する）ように許可テーブルを変更することによって、サードパーティアプリケーションに関連付けられた許可をアップデートする。
【０１１４】
アプリトークンは、図３Ｃに示されるアプリトークンテーブル３０２のようなデータ構造を介してグループベースコミュニケーションリポジトリ１０７に記憶される。ある実施形態では、グループベースコミュニケーションリポジトリ１０７は、グループベースコミュニケーションシステム１０５によって生成された全てのアプリトークンについて、関連するデータを記憶する単一のアプリトークンテーブル３０２を含む。これらの実施形態では、グループベースコミュニケーションシステム１０５は、それぞれのテーブルエントリがアプリトークン識別子３０９を介してどのアプリトークンに関連付けられるかを決定し得る。これら実施形態では、与えられたアプリトークンを定義するデータは、共通アプリトークン識別子３０９に関連付けられた、アプリトークンテーブル３０２内の全てのテーブル値を備える。この実施形態は、実用的であり、かつアプリトークンの簡単な実現例であるが、それは、全てのアプリトークンが単一のアプリトークンテーブル３０２を介して記憶され、維持され、かつクエリされるからである。
【０１１５】
当業者なら、グループベースコミュニケーションリポジトリ１０７が別個のアプリトークンテーブル３０２をそれぞれの別個のアプリトークンについて記憶する他の実施形態も想定できるだろう。この実施形態では、グループベースコミュニケーションリポジトリ１０７が、アプリトークンテーブル３０２と類似の複数のアプリトークンテーブル（それぞれのアプリトークンについて１つ）を記憶することが要求される。しかし、この実施形態の可能性のある利点には、任意の与えられたアプリトークンテーブル内により少ない量の値（例えばロウ）が記憶されるということがある。当業者なら、この実施形態がいくつかのトレードオフを伴うことを認識できるだろう。例えば、この実施形態は、アプリトークンテーブルを生成すること、及び複数のアプリトークンテーブルのそれぞれについてクエリすることのために、より複雑な方法を含む。その一方で、本実施形態は、それぞれのテーブルクエリの処理時間を低減することができるが、それは、それぞれのアプリトークンテーブルのサイズは、単一のアプリトークンテーブル３０２に全てのアプリトークンを記憶する、前の実施形態におけるよりも小さくなるからである。
【０１１６】
アプリトークンテーブル３０２は、他の実施形態では、アレイ、ツリー、又は任意のそのような類似のデータ構造を介しても表現され得て、必ずしもテーブルでなくてもよい。
【０１１７】
ある実施形態では、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションにグループベースコミュニケーションオブジェクト及びアクションへのアクセスを許可する前に、サードパーティアプリケーションのアイデンティティを確認するためにアプリトークンの暗号列３１２を用いる。その趣旨で、それぞれのアプリトークンは、アプリユーザをユニークに特定するアプリ識別子３１４、及びアプリユーザが関連付けられたグループをユニークに特定するグループ識別子３１０を含む。
【０１１８】
特筆すべきは、アプリトークンテーブルは、グループベースコミュニケーションスコープ記述子３１３を含み、これは、ゼロ（その値がヌルであるある時のような）又はそれより多いグループベースコミュニケーションスコープを特定するデータを保持する。よって、アプリトークンテーブルは、グループベースコミュニケーションスコープをグループ（グループをユニークに特定するグループ識別子３１０を介して）及びサードパーティアプリケーション（サードパーティアプリケーションをユニークに特定するアプリ識別子３１４を介して）にマッピングする。このようにして、グループベースコミュニケーションスコープ記述子３１３は、サードパーティアプリケーションに関連付けられたアプリユーザアカウントに関連付けられたグループベースコミュニケーションスコープを特定する情報を含む。ある実施形態では、グループベースコミュニケーションサーバ１０６が新しいアプリトークンのためのアプリトークンテーブル３０２のロウをまず生成する時、それは、グループベースコミュニケーションスコープ記述子３１３に既に含まれている値を持つロウを生成し得る。本質的には、グループベースコミュニケーションスコープ記述子３１３は、インストール時にサードパーティアプリケーションに付与された（granted）グループベースコミュニケーションスコープを含む。
【０１１９】
換言すれば、新しいアプリトークンを生成すると、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションスコープ記述子３１３内の値によって特定されたグループベースコミュニケーションスコープをサードパーティアプリケーションに自動的に許可する。さらに、ある実施形態では、これらの初期的にインスタンス化された（instantiated）グループベースコミュニケーションスコープ（すなわちアプリトークンテーブルに関連付けられたエントリが初めて生成された直後に、グループベースコミュニケーションスコープ記述子３１３によって特定されるものに対応するグループベースコミュニケーションスコープ）は、それぞれのサードパーティアプリケーションについて、均一であり得る。このようにして、コミュニケーションサーバ１０６は、インストール段階においては全てのサードパーティアプリケーションに、類似のグループベースコミュニケーションスコープを付与する。この実施形態の具体的な例では、例えば、グループベースコミュニケーションスコープ記述子３１３によって特定された許可は、App DMオブジェクトのグループベースコミュニケーションオブジェクトの履歴及びコンテンツをリード、ライト、及びアクセスする能力からなり得る（App DMオブジェクトは、この具体的なグループベースコミュニケーションスコープ内のオブジェクトタイプであり得る）。この実施形態では、したがって、全ての新しくインストールされたサードパーティアプリケーションは、インストール時に、App DMオブジェクトの履歴及びコンテンツをリード、ライト、及びアクセスする能力が付与される。
【０１２０】
他の実施形態では、新しいアプリトークンは、その対応するグループベースコミュニケーションスコープ記述子３１３によって保持されている値なしで生成され得る。しかし、これら実施形態では、グループベースコミュニケーションシステム１０５は、新しくインストールされたサードパーティアプリケーションに、グループベースコミュニケーションスコープ記述子３１３を参照することなしに、初期グループベースコミュニケーションスコープのセットを付与する。このようにして、グループベースコミュニケーションシステム１０５は、インストール時に、類似のグループベースコミュニケーションスコープを全ての新しくインストールされたサードパーティアプリケーションに付与する。例えば、初期的かつ自動的なグループベースコミュニケーションスコープは、App DMオブジェクトのグループベースコミュニケーションオブジェクトの履歴及びコンテンツをリード、ライト、及びアクセスする能力からなり得る（App DMオブジェクトは、この具体的なグループベースコミュニケーションスコープ内のオブジェクトタイプであり得る）。これら実施形態では、グループベースコミュニケーションスコープ記述子３１３は、インストール後にサードパーティアプリケーションに付与されたグループベースコミュニケーションスコープを記憶するために予約されている。グループベースコミュニケーションシステム１０５は、よって、サードパーティアプリケーションのインストールに続くある時刻においてグループベースコミュニケーションスコープ記述子３１３を変更し得る。
【０１２１】
しかし全ての実施形態において、それぞれのアプリユーザアカウントは、１つのアプリトークン（及びその対応するアプリトークン識別子３０９）とだけ関連付けられている。アプリユーザアカウントに関連付けられたアプリトークンは、任意の与えられたアプリユーザアカウントについての許可されたグループベースコミュニケーションアクションセットのアップデートを実現するよう変更され得る。グループベースコミュニケーションシステムは、グループベースコミュニケーションスコープ記述子３１３の変更を介してそのようなアップデートを実現する。
【０１２２】
サードパーティアプリケーションがグループベースコミュニケーションオブジェクトについて有する許可は、（ａ）グループベースコミュニケーションオブジェクト、及び（ｂ）グループベースコミュニケーションアクションのペアリングの間のマッピングを必然的に伴う。したがって、許可を決定するために、グループベースコミュニケーションシステム１０５は、許可テーブル３０１及びアプリトークンテーブル３０２の中の情報を相互参照しなければならない。許可テーブル３０１は、ある許可の特定のグループベースコミュニケーションオブジェクトをユニークに特定するグループベースコミュニケーションオブジェクト識別子を提供する。加えて、許可テーブル３０１は、特定のグループベースコミュニケーションオブジェクトのオブジェクトタイプを提供する。一方で、アプリトークンテーブル３０２は、グループベースコミュニケーションスコープ記述子を提供し、これは、（ａ）オブジェクトタイプ、及び（ｂ）そのオブジェクトタイプのカテゴリーに入るグループベースコミュニケーションオブジェクトについてサードパーティがとり得るグループベースコミュニケーションアクションを備える。このようにして、２つのテーブル３０１及び３０２内の情報を相互参照することによって、グループベースコミュニケーションサーバは、グループベースコミュニケーションシステム１０５における特定のグループベースコミュニケーションオブジェクトについて、サードパーティアプリケーションが有する許可を決定し得る。
【０１２３】
同様に、グループベースコミュニケーションシステム１０５は、サードパーティアプリケーションに関連付けられた許可をアップデート又は変更するために、両方のテーブル３０１及び３０２を参照しなければならない。サードパーティアプリケーションの許可をアップデートすること又は変更することは、（ａ）サードパーティアプリケーションがアクセスしたグループベースコミュニケーションオブジェクト、又は（ｂ）サードパーティアプリケーションがそのグループベースコミュニケーションオブジェクトについてとり得るグループベースコミュニケーションアクションのうちの少なくとも１つを変更することを必然的に伴う。許可をアップデートすること又は変更することは、（ａ）及び（ｂ）の両方を伴い得る。そのような変更を達成するためには、グループベースコミュニケーションシステム１０５は、意図された許可をサードパーティアプリケーションに付与するために、許可テーブル３０１の変更及びアプリトークンテーブル３０２の変更を一致させなければならない。
【０１２４】
図３Ｄについて、オブジェクト例外テーブル３０３は、ユーザが、サードパーティアプリケーションに付与された許可を、より高い程度の粒度又は具体性で特定できるようにする。オブジェクト例外テーブル３０３は、（ａ）他のグループベースコミュニケーションオブジェクトを発生させ得るか、又は他のグループベースコミュニケーションオブジェクトに関連付けられ得る、グループベースコミュニケーションオブジェクト、及び（ｂ）同じオブジェクトタイプにカテゴライズされた複数のグループベースコミュニケーションオブジェクトに関連する許可されたグループベースコミュニケーションアクションセット、に関連された許可を追跡するのに用いられる。例えば、グループベースコミュニケーションチャンネルは、チャンネルオブジェクトセットを含み得て、これは、ファイル、絵文字、リンク、ユーザ、アプリユーザアカウント、及びグループベースコミュニケーションチャンネルを介してユーザによってアクセス可能である他のグループベースコミュニケーションオブジェクトからなり得る。オブジェクト例外テーブル３０３は、グループベースコミュニケーションシステムが、サードパーティアプリケーションに、チャンネルオブジェクトセットを備えるグループベースコミュニケーションオブジェクトの一部に対するアクセス及び許可を付与できるようにする。そうするために、ある実施形態では、グループベースコミュニケーションシステム１０５は、許可テーブル３０１及びアプリトークンテーブル３０２を介してグループベースコミュニケーションチャンネルにアクセスする許可をサードパーティアプリケーションに、まず付与する。それから、グループベースコミュニケーションシステム１０５は、includes_object_exceptionsブール変数を「真」に設定するが、これは、特定のグループベースコミュニケーションチャンネルが、その許可の少なくとも１つの例外を含むことを示す。最後に、グループベースコミュニケーションシステム１０５は、許可への例外を特定するために、それから値を生成し、オブジェクト例外テーブル３０３に値を記憶する。
【０１２５】
例えば、もしグループベースコミュニケーションシステム１０５が、グループベースコミュニケーションオブジェクト（チャンネルオブジェクトセット内のグループベースコミュニケーションオブジェクトのような）へのアクセスを拒否すべきなら、グループベースコミュニケーションシステム１０５は、除外された（excepted）グループベースコミュニケーションオブジェクトに対応するグループベースコミュニケーションオブジェクト識別子を記憶する。グループベースコミュニケーションシステム１０５は、除外されたオブジェクト識別子３２８内にグループベースコミュニケーションオブジェクト識別子を記憶する。加えて、グループベースコミュニケーションシステム１０５は、除外されたグループベースコミュニケーションオブジェクトのオブジェクトタイプを、除外されたオブジェクトタイプ３２７内に記憶する。このようにして、グループベースコミュニケーションシステム１０５は、サードパーティアプリケーション（アプリ識別子３２３に対応する）に関連付けられた許可から、除外されたオブジェクト識別子（excluded object identifier）３２８に対応するグループベースコミュニケーションオブジェクトを除外する。
【０１２６】
他の例として、グループベースコミュニケーションシステム１０５が、サードパーティアプリケーションがグループベースコミュニケーションオブジェクト内でとり得るアクションを制限すべき場合は、グループベースコミュニケーションシステム１０５は、除外されたグループベースコミュニケーションスコープ３３０として、除外されたグループベースコミュニケーションスコープに対応するデータ値を含み得る。このようにして、グループベースコミュニケーションシステム１０５は、サードパーティアプリケーション（アプリ識別子３２３に対応する）に関連付けられた許可から、除外されたグループベースコミュニケーションスコープ３３０に対応するグループベースコミュニケーションスコープを除外する。その結果として、サードパーティアプリケーションは、グループベースコミュニケーション識別子３２６に対応する特定のグループベースコミュニケーションオブジェクトについて、他の許可を有し得る。しかし、サードパーティアプリケーションは、グループベースコミュニケーション識別子３２６内の値に対応するグループベースコミュニケーションオブジェクトについて、除外されたグループベースコミュニケーションスコープ３３０によって特定されたグループベースコミュニケーションスコープに対応するグループベースコミュニケーションアクションを実行する能力を有しない。
【０１２７】
グループベースコミュニケーションリポジトリ１０７は、メッセージングコミュニケーション情報と共に、メッセージングコミュニケーションも記憶し得る。対応するメッセージングコミュニケーション情報と共に、メッセージングコミュニケーションは、グループベースコミュニケーションチャンネル識別子又はグローバル識別子のようなさまざまなインジケータによって、グループベースコミュニケーションリポジトリ１０７内でインデックス化され得る。グループベースコミュニケーションサーバ１０６は、ユーザのグローバル識別子を用いてグループベースコミュニケーションリポジトリ１０７にクエリすることによって、そのユーザに関連付けられたメッセージングコミュニケーション及び対応するメッセージングコミュニケーション情報を見出し得る。グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションチャンネル識別子を用いてグループベースコミュニケーションリポジトリ１０７にクエリすることによって、特定のグループベースコミュニケーションチャンネル識別子に関連付けられたメッセージングコミュニケーション及び対応するメッセージングコミュニケーション情報を見出し得る。
【０１２８】
記憶されたメッセージングコミュニケーション情報は、メッセージングコミュニケーションに対応するタイムスタンプ、メッセージングコミュニケーションに対応する至急インジケータ、メッセージングコミュニケーションに対応するhas_fileインジケータ、メッセージングコミュニケーションに対応するワードカウントインジケータ、メッセージングコミュニケーションに対応するメッセージトピックを含み得る。他のメッセージングコミュニケーション情報も、グループベースコミュニケーションリポジトリ１０７に含まれ得る。
【０１２９】
グループにおけるアプリケーションのインストール
グループベースコミュニケーションサーバは、サードパーティアプリケーションをグループ内にインストールするよう構成される。ある実施形態では、インストールは、サードパーティアプリケーションの代わりに許可フローを実現するグループベースコミュニケーションサーバを備える。ある実施形態では、許可ステップは、OAuth 2.0標準規格を実現し得る。ある実施形態では、サードパーティアプリケーションをグループ内にインストールすることは、（１）アプリユーザアカウントに関連付けられたユニークなアプリトークンを生成するサードパーティアプリケーションの代わりに許可フローを開始する、（２）サードパーティアプリケーションに関連付けられたアプリユーザアカウントをグループベースコミュニケーションリポジトリ１０７内に生成及び記憶する、及び（３）インストールされつつあるサードパーティアプリケーションに関連付けられた許可テーブル（すなわち許可テーブル３０１）及びアプリトークンテーブル（すなわちアプリトークンテーブル３０２）に後で追加される、アプリユーザアカウントに関連付けられた許可を生成する、という大まかなステップを含む。
【０１３０】
図４Ａ−図４Ｂは、グループベースコミュニケーションシステム１０５のグループ内でのサードパーティアプリケーションのインストール手続き４００Ａの実施形態を表す信号図を示す。ステップ４０２において、グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａのユーザに関連付けられたグループにアプリケーションをインストールしたいというリクエストをクライアントデバイス１０１Ａから受け取る。ある実施形態では、グループベースコミュニケーションシステム１０５は、クライアントデバイス１０１Ａのユーザが、インタラクティブボタン又は他のタイプのディスプレイスクリーンインタラクティブ要素をクリックすることの結果として、そのようなリクエストを受け取り得る。ある実施形態では、インタラクティブボタン又はディスプレイスクリーンインタラクティブ要素は、グループベースコミュニケーションシステム１０５に関連付けられたユーザインタフェースの要素として提供され得て、この要素は、クライアントデバイス１０１Ａにおいて表示され得る。コミュニケーションサーバ１０６によって受け取られたリクエストは、サードパーティアプリケーションプロバイダ識別子、サードパーティアプリケーション識別子、サードパーティアプリケーションの代わりにリクエストされるべき許可の記述子、クライアントデバイスのユーザが許可及び／又はインストールプロセスの終了時にリダイレクトされるべきオプションのＵＲＩ−−redirect_URI−−、許可及び／又はインストールプロセスが完了すると送信されるべきオプションのユニークな状態列（optional unique state string）（ユニークな状態列の目的は、例えば、クロスサイトリクエストの偽造の間のような、未承認の偽造信号の送信を減らすことによって、プロセスのセキュリティを高めることであり得る）、及びサードパーティアプリケーションがインストールされるべきグループに関連付けられたオプションのグループ識別子のような、さまざまなパラメータも備え得る。
【０１３１】
ある実施形態では、サードパーティ識別子の代わりに、グループベースコミュニケーションサーバ１０６は、インストールされるべきサードパーティアプリケーションも特定し得るクライアント識別子を受け取る。ある実施形態では、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションを初めてインストールする（図４Ａには示されていないステップ）前に起こる登録プロセスの間にクライアント識別子を生成し得る。換言すれば、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションを登録したいというリクエストを受信することに応答して、クライアント識別子を生成し、そのクライアント識別子を、そのサードパーティアプリケーションに関連付けられたサードパーティアプリケーションプロバイダ１０２Ａに送信する。加えて、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションリポジトリ１０７内に、生成されたクライアント識別子のレコードを、インストールプロセスの間の参照のためのような将来の参照のために記憶し得る。ある実施形態では、サードパーティアプリケーションプロバイダ１０２Ａは、クライアント識別子も記憶し、そのクライアント識別子をグループベースコミュニケーションサーバ１０６と通信して使用することによって、そのコミュニケーションに関連付けられたサードパーティアプリケーションを特定し得る。例えば、これは、その後の許可及びインストールプロセスの間に有用である。クライアント識別子は、ある局面においては、これらクライアント識別子及びサードパーティアプリケーション識別子の両方がサードパーティアプリケーションと関連付けられている点で、サードパーティアプリケーション識別子と類似する。しかし、クライアント識別子は、サードパーティアプリケーションプロバイダ１０２Ａのために生成される一方で、サードパーティアプリケーション識別子は、グループベースコミュニケーションシステム１０５内で内部使用のために生成される。
【０１３２】
ある実施形態では、グループベースコミュニケーションサーバ１０６は、上述の登録プロセスの一部として、以下、client_secretと呼ばれる暗号列も生成し、この暗号列は、サードパーティアプリケーションプロバイダ又はサードパーティアプリケーションと関連付けられる。グループベースコミュニケーションサーバ１０６は、client_secretをサードパーティアプリケーションプロバイダ１０２Ａに送信し、このことは、サードパーティアプリケーションプロバイダ１０２Ａがその後の許可プロセスにおいてを使用できるようにする。例えば、client_secretは、サードパーティアプリケーション又はサードパーティアプリケーションプロバイダを認証するために、グループベースコミュニケーションサーバ１０６によって用いられ得る。クライアント識別子と同様に、グループベースコミュニケーションサーバ１０６は、将来の使用又は参照のために、client_secretのレコード又はコピーをグループベースコミュニケーションリポジトリ１０７内に記憶し得る。
【０１３３】
ステップ４０４において、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションリポジトリ１０７にクエリすることによって、サードパーティアプリケーションが、インストールをリクエストするユーザによって提供されたグループ識別子に対応するグループ内に既にインストールされている状態ではないことを確認する。ある例示的実施形態では、グループベースコミュニケーションサーバ１０６からのクエリは、リクエストしているユーザがインストールをリクエストしているグループに対応するグループ識別子、及びユーザがインストールをリクエストしたサードパーティアプリケーションに対応するサードパーティ識別子を含むアプリトークンをサーチする。
【０１３４】
ステップ４０６において、グループベースコミュニケーションサーバ１０６は、クエリ結果をグループベースコミュニケーションリポジトリ１０７から受信する。それから、ステップ４０７において、グループベースコミュニケーションサーバは、クライアントデバイスによって提供されたグループ識別子に対応するグループに、サードパーティアプリケーションが既にインストールされていることを示すデータを、グループベースコミュニケーションリポジトリ１０７が含むかを決定する。換言すれば、ステップ４０４−４０７において、グループベースコミュニケーションサーバ１０６は、そのサードパーティアプリケーションが既にインストールされているかどうかを判断するために、グループベースコミュニケーションリポジトリ１０７にクエリする。
【０１３５】
ある実施形態では、サードパーティアプリケーションが既にインストールされているとステップ４０４−４０７において判断することに応答して、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションのインストールを中止する。ある実施形態では、グループベースコミュニケーションサーバ１０６は、それから、App DMが、クライアントデバイス１０１Ａのユーザ及びユーザがインストールを試みたが既にインストールされているサードパーティアプリケーションの両方に関連付けられるようにクライアントデバイスにさせる信号（図４Ａでは不図示）をクライアントデバイスに送信する。そのような実施形態では、グループベースコミュニケーションシステム１０５は、クライアントデバイス１０１Ａのユーザが、グループベースコミュニケーションシステム１０５内に既にインストールされたサードパーティアプリケーションに対応するアプリユーザアカウントをApp DMを介して閲覧及び設定できるようにする。いくつかの実施形態では、最初にサードパーティアプリケーションをグループにインストールしたユーザによる場合のような、ユーザがサードパーティアプリケーションを設定するためにアクセスすることが許可されている場合だけ、そのユーザは、App DMを介してサードパーティアプリケーションの設定にアクセスし、設定を変更することができる。他の実施形態では、そのサードパーティアプリケーションを最初にインストールしたユーザではなく、管理者として指定されたユーザが、App DMを介してサードパーティアプリケーションの許可を設定するためにアクセスすることを他のユーザに承認付与するユーザである。
【０１３６】
他の実施形態では、サードパーティアプリケーションが既にインストールされているとステップ４０４−４０７において決定することに応答して、グループベースコミュニケーションサーバ１０６は、インストールされたサードパーティアプリケーションの現在の許可を、ステップ４０２において受信されたリクエストによって特定されたサードパーティアプリケーションの代わりにリクエストされるべき許可の記述子とそれから比較する。もしグループベースコミュニケーションサーバ１０６が、リクエストされるべき許可の記述子が、サードパーティアプリケーションの現在の許可と比較される時、追加の許可を含むと決定するなら、グループベースコミュニケーションサーバ１０６は、ステップ４０８に進む。一方で、もしグループベースコミュニケーションサーバ１０６が、リクエストされるべき許可の記述子が追加の許可を含まないと決定するなら、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションのインストールを中止する。グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａのユーザと、ユーザがインストールしようと試みたが、既にインストールされているサードパーティアプリケーションとの両方にApp DMが関連付けられるようにクライアントデバイスにさせる信号（図４Ａでは不図示）をクライアントデバイスにそれから送信する。そのような実施形態では、グループベースコミュニケーションシステム１０５は、App DMを介してグループベースコミュニケーションシステム１０５内に既にインストールされているサードパーティアプリケーションに対応するアプリユーザアカウントをクライアントデバイス１０１Ａのユーザが閲覧及び設定できるようにし得る。いくつかの実施形態では、ユーザがサードパーティアプリケーションを設定するためにアクセスを許可されている場合にだけ、例えばそのサードパーティアプリケーションをそのグループに最初にインストールしたユーザによって、そのユーザは、App DMを介してサードパーティアプリケーションにアクセスし、設定を変更できる。他の実施形態では、そのサードパーティアプリケーションを最初にインストールしたユーザではなく、管理者として指定されたユーザが、App DMを介してサードパーティアプリケーションの許可を設定するためにアクセスすることを他のユーザに承認付与するユーザである。
【０１３７】
ステップ４０８において、グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａのユーザを、グループベースコミュニケーションサーバ１０６によってホストされ、許可が始まるＵＲＩにリダイレクトする。ステップ４０９において、グループベースコミュニケーションサーバ１０６は、さらに、ステップ４０２で受信されたパラメータのうちのいくつかをそのＵＲＩに送信する。これらは、許可及びインストールのプロセスのために要求されるパラメータである。そのようなパラメータは、例えば、サードパーティアプリケーション識別子又はクライアント識別子、サードパーティアプリケーションの代わりにリクエストされるべき許可の記述子、クライアントデバイスのユーザが許可及び／又はインストールプロセスの終了時にリダイレクトされるべきＵＲＩ−−redirect_URI−−、許可及び／又はインストールプロセスが完了すると送信されるべきユニークな状態列（unique state string）、及びサードパーティアプリケーションがインストールされるべきグループに関連付けられたグループ識別子を備え得る。
【０１３８】
ステップ４１０において、グループベースコミュニケーションサーバ１０６は、信号を生成し、かつクライアントデバイス１０１Ａに送信し、クライアントデバイス１０１Ａは、サードパーティアプリケーションのインストールを承認又は拒否するようユーザにプロンプトをする。加えて、いくつかの実施形態では、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションスコープ記述子３１３によって特定されたものに対応するグループベースコミュニケーションスコープをサードパーティアプリケーションに対して承認又は拒否のいずれかをするようユーザにプロンプトし得る。いくつかの実施形態では、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションスコープ記述子３１３によって特定されたものを越える、追加の許可又はグループベースコミュニケーションスコープをサードパーティアプリケーションに対して承認又は拒否のいずれかをするよう追加としてユーザをプロンプトする。例えば、グループベースコミュニケーションサーバ１０６は、ステップ４０２で受信されたサードパーティアプリケーションの代わりにリクエストされるべき許可の記述子によって特定されるものに対応する許可をサードパーティアプリケーションに対して承認又は拒否のいずれかをするようユーザにプロンプトし得る。クライアントデバイス１０１Ａのユーザへのプロンプトは、クライアントデバイス１０１Ａによって受信される時、クライアントデバイス１０１Ａにグループベースコミュニケーションオブジェクト許可インタフェースをレンダリングさせる、グループベースコミュニケーションサーバ１０６からの命令の形態であり得る。
【０１３９】
そのようなグループベースコミュニケーションオブジェクト許可インタフェースの例示的実施形態が図５Ａに示される。図５Ａを参照すれば、許可リクエストメッセージ５０３は、グループベースコミュニケーションオブジェクト許可インタフェースがワークスペースのためのランチトレインのアプリケーションが、クライアントデバイス１０１Ａのユーザとのプライベート会話にアクセスするリクエストをしていることを示す。図５Ａの実施形態では、「プライベート会話」は、あるApp DMオブジェクトと関連付けられた仮想的なコミュニケーションフィードを表す。しかし、許可リクエストメッセージ５０３は、グループベースコミュニケーションスコープ記述子３１３又は前のパラグラフで説明された任意の追加の許可によって特定されたグループベースコミュニケーションスコープに関連付けられた他の許可を含み得ることに注意されたい。よって、クライアントデバイス１０１Ａのユーザは、アクチュエータボタン５０２を介してインストール及び許可リクエストを承諾し、又はアクチュエータボタン５０１を介してリクエストを拒否し得る。もしユーザがアクチュエータ５０２をクリックするなら、ワークスペースのためのランチトレインのアプリケーションへ付与された許可は、App DMオブジェクトにメッセージをポストし、App DMオブジェクトからメッセージを読む許可を含むだろう。アクチュエータ５０２をクリックすることは、クライアントデバイス１０１Ａが、承認付与（authorization grant）を備えるデータをグループベースコミュニケーションサーバ１０６に送信するようにさせる。
【０１４０】
ステップ４１２において、グループベースコミュニケーションサーバ１０６は、そのリクエストの承認又は拒否のいずれかを含む信号を受信する。承認を含む信号を受信することに応答して、グループベースコミュニケーションサーバ１０６は、オプションのステップ４１４を実行し得る。オプションのステップ４１４において、グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａに信号を送信し得て、この信号は、サードパーティアプリケーションへの追加の許可を承認又は拒否するようユーザにプロンプトする。これらの追加でリクエストされた許可は、グループベースコミュニケーションスコープ記述子３１３によって特定される追加の許可又はグループベースコミュニケーションスコープ、ステップ４０２において受信されたサードパーティアプリケーションの代わりにリクエストされるべき許可の記述子によって特定された追加の許可、又は任意の追加の許可に対応し得る。プロンプトは、クライアントデバイスによって受信された時、クライアントデバイスにグループベースコミュニケーションオブジェクト許可インタフェースをレンダリングさせる、グループベースコミュニケーションサーバからの命令の形態であり得る。
【０１４１】
そのようなグループベースコミュニケーションオブジェクト許可インタフェースの例示的実施形態が図５Ｂ，図５Ｃに示される。図５Ｂを参照すると、許可リクエストメッセージ５０６及び５０７は、システムが、それがメンバである全てのチャンネルにおいてスラッシュコマンドを追加し、かつメッセージをポストするための、ワークスペースのためのランチトレインアプリケーションについての許可をリクエストしていることを示す。これは、実質的には、２つのグループベースコミュニケーションスコープを承認又は拒否するリクエストである。換言すれば、両方のグループベースコミュニケーションアクションがオブジェクトタイプ（すなわちグループベースコミュニケーションチャンネル）について承認付与され、その結果、サードパーティアプリケーションは、加えて、サードパーティアプリケーションの許可されたグループベースコミュニケーションオブジェクトセット内である、任意のグループベースコミュニケーションチャンネル上でグループベースコミュニケーションアクションを実行することを許される。アクチェータボタン５０４及び５０５は、クライアントデバイス１０１Ａのユーザに、そのリクエストを承認又は拒否のいずれかをするオプションを与える。
【０１４２】
グループベースコミュニケーションオブジェクト許可インタフェースの実施形態の変形例が図５Ｃに示される。そこでは、許可リクエストメッセージ５０８は、ワークスペースのためのランチトレインがメッセージ及びファイルをポストするための許可を、システムがリクエストしていることを示す。しかし、図５Ｃの実施形態は、クライアントデバイス１０１Ａのユーザが、そのユーザがグループベースコミュニケーションアクションを許可したいチャンネル（すなわちグループベースコミュニケーションオブジェクト）を選び得る点で以前の実施形態とは異なる。例えば、もしユーザがアクチュエータ５０９を選択し、アクチュエータボタン５１４をクリックするなら、許可テーブル３０１及びアプリトークンテーブル３０２は、ワークスペースのためのランチトレインアプリケーションのための追加の許可を含むように、適宜、アップデートされる。許可テーブル３０１は、ワークスペースのためのランチトレインのアプリケーションについての許可されたグループベースコミュニケーションオブジェクトセット内に全てのパブリックチャンネルを含むことになる。追加として、アプリトークンテーブル３０２は、ワークスペースのためのランチトレインのアプリケーションに関連付けられたグループベースコミュニケーションスコープ内に、グループベースコミュニケーションチャンネルにメッセージ及びファイルをポストする能力を特定するデータを含むことになる。その結果、メッセージ及びファイルをポストするグループベースコミュニケーションアクションは、ワークスペースのためのランチトレインのアプリケーションのための許可されたグループベースコミュニケーションアクションセットの一部を形成することになる。
【０１４３】
グループベースコミュニケーションシステムは、図５Ｃ及びアクチュエータ５０９に関連して上述されたように、全てのパブリックチャンネルに許可を追加するときのような、「一括して」許可を追加することを可能にする。その目的のために、グループベースコミュニケーションサーバ１０６は、許可テーブル３０１内で、is_wildcardブール変数（図３Ｂ参照）を用い得る。さらなるコンテキストを提供するために、ユーザがアクチュエータ５０９（図５Ｃ参照）を選択し、アクチュエータボタン５１４をクリックすると、グループベースコミュニケーションサーバ１０６は、全てのパブリックグループベースコミュニケーションチャンネル（ワークスペースのためのランチトレインのアプリケーションがインストールされているグループに関連付けられている）を、ワークスペースのためのランチトレインのアプリケーションに関連付けられた許可に追加する。そうするために、グループベースコミュニケーションサーバ１０６は、「true」に設定されたis_wildcard変数を含むロウ（row）を許可テーブル内に生成し記憶する。さらに、そのロウについて、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションオブジェクトタイプ３０７として、パブリックグループベースコミュニケーションチャンネルは、is_wildcard変数と関連付けられなければならないことを特定するデータを記憶する。このロウは、よって、全てのそのようなパブリックグループベースコミュニケーションチャンネルが、アプリ識別子３０６によって特定されたサードパーティアプリケーション（すなわちこの場合はワークスペースのためのランチトレイン）に関連付けられた、許可されたグループベースコミュニケーションオブジェクトセットの一部であるという表示（indication）を記憶することになる。
【０１４４】
この実施形態では、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションオブジェクト識別子３０８をnull値として（又は他の実施形態ではゼロとして）さらに記憶し得るが、これは、それらチャンネルの全てが「一括して」追加されるので、パブリックグループベースコミュニケーションチャンネルのそれぞれを具体性をもって特定する必要はないからである。最後に、グループベースコミュニケーションサーバ１０６は、is_exclusion変数（図３Ｂ参照）を「偽」に設定するが、これは、ユーザがいずれのパブリックグループベースコミュニケーションチャンネルも許可から除外していないからである（図５Ｃ参照）。is_exclusion変数についてのさらなる詳細は以下に述べられる。
【０１４５】
「一括して」許可を追加することに対する追加のステップとして、もし許可テーブル３０１内の既存のロウが、サードパーティアプリケーションを、is_wildcard変数を介して追加されたパブリックグループベースコミュニケーションオブジェクトの任意のものに関連付けるなら、グループベースコミュニケーションサーバ１０６は、それらの既存のロウを除去することによって、許可テーブル３０１内に冗長な情報を有することを回避する。当業者なら、冗長な情報の除去が、「一括して」許可を追加するプロセスにおける第１ステップとして、最後のステップとして、又は任意の他のステップとして実行される実施形態を想定できるだろう。
【０１４６】
この説明が既に暗示しているように、is_exclusion変数を「真」に設定することは、「一括して」追加された（すなわちis_wildcard変数を介して）特定のパブリックグループベースコミュニケーションチャンネルを、サードパーティアプリケーションの許可されたグループベースコミュニケーションオブジェクトセットから除去する。そうするために、グループベースコミュニケーションサーバ１０６は、許可テーブル３０１内の個別に除外されたパブリックグループベースコミュニケーションチャンネルについてのロウを生成することになる。このロウは、除外されたパブリックグループベースコミュニケーションチャンネルを、グループベースコミュニケーションオブジェクト識別子３０８を介して特定することになる。このロウは、パブリックグループベースコミュニケーションチャンネルがis_wildcard変数を介して「一括して」追加されたことも示し、この変数は、「真」に設定されることになる。最後に、ロウは、許可識別子３０４及びアプリ識別子３０６を介して、除外されたグループベースコミュニケーションチャンネルをサードパーティアプリケーションの許可に適切に関連付けなければならないことになる。これら一連のステップは、本質的には、特定されたパブリックグループベースコミュニケーションチャンネルをサードパーティアプリケーションの許可から除外する。
【０１４７】
図５Ｃの他の局面について、もしユーザがアクチュエータ５１０を選択するなら、ユーザは、どのグループベースコミュニケーションチャンネルがユーザ識別子と関連付けられたチャンネル（すなわちユーザがメンバであるチャンネル）を形成し、それによりワークスペースのためのランチトレインのアプリケーションの許可されたグループベースコミュニケーションオブジェクトセットに含まれるかを粒度を持って（with granularity）特定し得る。ある実施形態では、アクチュエータ５１０をアクティベートすることは、今度は、ユーザが利用可能なチャンネルの中から選択的に選び得るさらなるインタフェースを起動し得る。
【０１４８】
ユーザは、インストール段階の間には、いかなる追加の許可も付与しないという選択もし得る。ユーザは、アクチュエータ５１１を選択することによって、それからアクチュエータボタン５１４をクリックすることによって、いかなる追加の許可も付与することなく、ワークスペースのためのランチトレインのアプリケーションをインストールすることでこれを行い得る。しかし、図５Ｃが示すように、ユーザは、ワークスペースのためのランチトレインのアプリケーションに関連付けられた許可を後の段階において、すなわちインストールの後で、他の方法を介して、アップデートし得ることに注意されたい。よって、アプリケーションを、いかなるさらなる許可も付与することなく、インストールすることは、そのユーザ及びワークスペースのためのランチトレインのアプリケーションがインストールされるべき同じグループに属している他のユーザにとって依然として有益であり得る。
【０１４９】
ステップ４１５、リクエストされた許可についての承認付与を受信することに応答して、グループベースコミュニケーションサーバ１０６は、クライアントデバイスのユーザをステップ４０８で受信されたredirect_URIにリダイレクトする。
【０１５０】
ステップ４１７、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションプロバイダによってホストされたredirect_URIに、クライアントデバイスのユーザがリクエストされた許可について承認付与（authorization grant）を提供したことを示す一時的コードを送信する。この一時的コードは、特定された期間の間だけ有効であることによって、認証プロセスのセキュリティを確実にする。
【０１５１】
ステップ４１８において、グループベースコミュニケーションサーバ１０６は、一時的コード、サードパーティアプリケーション識別子、サードパーティアプリケーションプロバイダ識別子、暗号列client_secret、及びredirect_URIを備える信号を受信する。
【０１５２】
ステップ４２０において、ステップ４２０において受信された信号が、サードパーティアプリケーションプロバイダのアイデンティティを確認する情報を備えると判断されたことに応答して、グループベースコミュニケーションサーバ１０６は、アプリトークンを生成し、かつサードパーティアプリケーションプロバイダに送信する。
【０１５３】
ステップ４２２において、グループベースコミュニケーションサーバ１０６は、インストールされたばかりのサードパーティアプリケーションに対応するアプリユーザアカウントを生成する。グループベースコミュニケーションサーバ１０６は、アプリユーザアカウントを表すデータ構造をグループベースコミュニケーションリポジトリ１０７に記憶する。アプリユーザアカウントは、グループ識別子を介してグループベースコミュニケーションシステム内のグループに少なくとも関連付けられる。以下に示されるのは、アプリユーザアカウントを含むデータ構造の一つの可能な実施形態である。
【０１５４】
{
"data":
[
{
"id": 6207803345,
"username": "namely_bot1",
"email": "appuser-T061GA5HN-A0645SA56@slack-bots.com",
"team_id": 6050345600,
"deleted": 1485397246,
"created": 1458246382,
"password": "",
"conf_code": secret_string_variable_num_1,
"api_code": secret_string_variable_num_2,
"confirmed": 0,
"is_away": 0,
"is_admin": 0,
"is_owner": 0,
"is_restricted": 0,
"is_ultra_restricted": 0,
"is_bot": 3,
"profile": "{\"bot_id\":\"B0662Q48G\",\"api_app_id\":\"A0645SA56\",\"first_name\":\"N amely\",\"avatar_hash\":\"a74d2d92a5f9\",\"full_name\":\"Test BotNew\",\"preferred_name\":\"test_bot2\",\"image_24\":\string_variable_holding_URI_num_1,\"image_32\":\ string_variable_holding_URI_num_2,\"image_48\":\ string_variable_holding_URI_num_3,\"image_72\":\ string_variable_holding_URI_num_4,\"image_192\":\ string_variable_holding_URI_num_5,\"image_512\":\ string_variable_holding_URI_num_6,\"image_1024 string_variable_holding_URI_num_7,\"image_original\":\ string_variable_holding_URI_num_8,\"real_name\":\"Test Bot New\",\"real_name_normalized\":\"Test Bot New\",\"full_name_normalized\":\"Test Bot New\",\"preferred_name_normalized\":\"test_bot-x\",\"fields\":null,\"_unpacked\":true,\"always_active\":true}",
"color": "BLOB",
"has_push": 0,
"push_dirty": 1,
"push_count": 0,
"has_email": 1,
"email_dirty": 0,
"has_summary": 0,
"last_client_login": 1458581393,
"is_inactive": 1,
"date_model_update": 1508194156,
"external_id": 0,
"manual_away_ts": 0,
"tz": "America/Los_Angeles",
"is_pre_provisioned": 0
}
]
}
ステップ４２４において、グループベースコミュニケーションサーバ１０６は、アプリトークンのレコードを生成し、それをグループベースコミュニケーションリポジトリ１０７内に記憶する。アプリトークンは、アプリトークンテーブル３０２内に記憶され、それは、サードパーティアプリケーション識別子を介してサードパーティアプリケーションのアプリユーザアカウントに関連付けられる。さらに、生成され記憶されたアプリトークンは、ユーザがインストールプロセスの間にサードパーティアプリケーションに承認付与した許可に関連付けられた任意のグループベースコミュニケーションスコープを反映する。
【０１５５】
ステップ４２６において、グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａのユーザによってサードパーティアプリケーションに付与された許可を反映する許可テーブル３０１についてのエントリを生成する。グループベースコミュニケーションサーバ１０６は、これらエントリをグループベースコミュニケーションリポジトリ１０７内の許可テーブル３０１内に記憶する。許可テーブル３０１は、サードパーティアプリケーション識別子及びアプリユーザアカウント識別子を介してサードパーティアプリケーションに関連付けられる。許可テーブル３０１は、グループ全体に関連付けられた許可に関するデータを保持することに注意されたい。
【０１５６】
図４Ｃ−図４Ｄは、グループベースコミュニケーションシステム１０５のあるグループ内のサードパーティアプリケーションのインストール手続き４００Ｂの第２実施形態を表す信号図を示す。図４Ｄは、図４Ａと多くの類似点を有するが、いくつかの重要な差異を有する。図４Ｄの実施形態を参照して、図４Ａ、ステップ４０２に関連して説明されたインタラクティブボタンが、サードパーティアプリケーションプロバイダ１０２Ａに関連付けられたユーザインタフェースによって代わりに提供され得る。ユーザインタフェースの一部を形成するこのインタラクティブボタン要素は、クライアントデバイス１０１Ａによって表示され得る。例えば、このインタラクティブボタンは、サードパーティアプリケーションプロバイダ１０２Ａによって提供されるウェブサイトの一部であり得て、このサイトは、クライアントデバイス１０１Ａのユーザによってアクセス可能である。このようにして、ステップ４０１において、クライアントデバイス１０１Ａのユーザは、サードパーティアプリケーションプロバイダ１０２Ａによって提供されたウェブサイトへの入力を提供し得て、この入力は、グループベースコミュニケーションシステム１０５にサードパーティアプリケーションをインストールしたいというリクエストの、サードパーティアプリケーションプロバイダ１０２Ａへの通知として機能し得る。
【０１５７】
ステップ４０２Ａにおいて、インタラクティブボタンのクリックを示すイベント信号を受信することに応答して、サードパーティアプリケーションプロバイダ１０２Ａは、ユーザアカウント及びサードパーティアプリケーションをインストールしたいグループを提供するようクライアントデバイス１０１Ａのユーザをプロンプトし得る。
【０１５８】
ステップ４０２Ｂにおいて、サードパーティアプリケーションプロバイダ１０２Ａは、クライアントデバイス１０１Ａからリクエストされた情報を受信する。ステップ４０３Ａにおいて、そのような情報をクライアントデバイス１０１Ａのユーザから受信したことに応答して、サードパーティアプリケーションプロバイダ１０２Ａは、クライアントデバイス１０２Ａのユーザを、グループベースコミュニケーションサーバ１０６によってホストされるＵＲＩにリダイレクトし、ここで承認及びインストールが開始され得る。ステップ４０３Ｂにおいて、グループベースコミュニケーションサーバ１０６は、ユーザをリダイレクトするのに加えて、承認及びインストールプロセスのために要求されるいくつかのパラメータをそのＵＲＩに送信する。そのようなパラメータは、例えば、クライアント識別子、サードパーティアプリケーションの代わりにリクエストされるべき許可の記述子、オプションのＵＲＩ−−redirect_URI−−クライアントデバイスのユーザが、承認及び／又はインストールプロセスの終了時にリダイレクトされるべき場所、承認及び／又はインストールプロセスの完了と共に送信されるべきオプションのユニークな状態列、及びサードパーティアプリケーションがインストールされるべきグループに関連付けられたオプションのグループ識別子を備え得る。
【０１５９】
その後、グループベースコミュニケーションサーバ１０６によってホストされるＵＲＩを介してパラメータを受信したことに応答して、グループベースコミュニケーションサーバ１０６は、ステップ４０４に入るが、これは、上の図４Ａに関して説明したステップ４０４と同一である。同様に、システムは、ステップ４０６，４０７，４１０，４１２，４１４，４１５，４１６，４１７，４１８，４２０，及び４２２を処理していくが、これら全ては、図４Ａを参照して説明された同様に番号が付されたステップと類似及び同一である。しかし図４Ｄの実施形態は、ステップ４０８及び４０９を省略しており、これは、これらステップが図４Ｄに開示される実施形態では必要がないからであることに注意されたい。
【０１６０】
アプリケーションをグループベースコミュニケーションオブジェクトに追加する
グループベースコミュニケーションシステム１０５は、ユーザがサードパーティアプリケーションを、候補グループベースコミュニケーションオブジェクトセットの一部を形成する追加のグループベースコミュニケーションオブジェクトに追加することができるようにするよう構成される。グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションを、追加のグループベースコミュニケーションオブジェクトに追加するための異なる代替手段を提供し得る。ある実施形態では、インストールプロセスの間に、かつグループベースコミュニケーションオブジェクト許可インタフェースを介して、グループベースコミュニケーションサーバ１０６は、そのサードパーティアプリケーションについての追加の許可を選択及び付与するオプションをユーザに与え得る。これらのプロセスは、図４Ａ−図４Ｄの議論において、図５Ａ−図５Ｃを参照して既に説明された。
【０１６１】
図６は、サードパーティアプリケーションをグループベースコミュニケーションオブジェクトに追加するプロセスの実施形態を表す信号図である。ステップ６０２において、グループベースコミュニケーションサーバ１０６は、ユーザがサードパーティアプリケーションをグループベースコミュニケーションオブジェクトに追加したいとリクエストしていることを示す入力リクエストをクライアントデバイスから受信する。
【０１６２】
ステップ６０３において、サードパーティアプリケーションの許可をアップグレードしたいというリクエストを含む信号を受信したことに応答して、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションに対する追加の許可を承認又は拒否するようユーザにプロンプトする。このプロンプトは、クライアントデバイスによって受信された時に、クライアントデバイスがグループベースコミュニケーションオブジェクト許可インタフェースをレンダリングするようにさせる、グループベースコミュニケーションサーバからの命令の形態であり得る。そのようなグループベースコミュニケーションオブジェクト許可インタフェースの例示的実施形態が図７Ａに示される。許可リクエストメッセージ７０３及び７０４と共にアクチュエータボタン７０１及び７０２の機能は、図５Ｂについて開示されたアクチュエータ及びメッセージの機能と類似する。図７Ａにおいて、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションチャンネルatlanta-unitedの中で「スラッシュコマンドを追加する」及び「アプリとしてメッセージをポストする」許可をワークスペースのためのランチトレインのアプリケーションに承認するよう、クライアントデバイス１０１Ａのユーザにプロンプトし得る。クライアントデバイスのユーザは、アクチュエータボタン７０１及び７０２を用いて、許可を承認又は拒否し得る。アクチュエータボタン７０２をクリックすることによって、リクエストされた許可について承認付与（authorization grant）が発行され、これらは、グループベースコミュニケーションサーバ１０６によって受信され得る。
【０１６３】
図７Ａは、グループベースコミュニケーションサーバ１０６が、グループベースコミュニケーションオブジェクト−−atlanta-united−−を許可されたグループベースコミュニケーションオブジェクトセットに追加する承認をするようクライアントデバイス１０１Ａのユーザをプロンプトし、意図された結果として、サードパーティアプリケーション−−ワークスペースのためのランチトレイン−−がそれからそのグループベースコミュニケーションスコープ（そのそれぞれのグループベースコミュニケーションスコープ記述子３１３）をatlanta-unitedに適用することが承認されることとなる、実施形態に関することに注意されたい。最終結果は、もしクライアントデバイス１０１Ａのユーザがリクエストを承認するなら、ワークスペースのためのランチトレインは、新しい許可（すなわちグループベースコミュニケーションオブジェクト及びグループベースコミュニケーションアクションの間のペアリングの新しいセット）を獲得し、（ａ）atlanta-united内でスラッシュコマンドを追加し、及び（ｂ）atlanta-united内のアプリとしてメッセージをポストする。しかし、図７Ａの他の変化形が可能である。例えば、グループベースコミュニケーションサーバ１０６は、代わりに、承認のためにクライアントデバイス１０１Ａのユーザに対して、追加のグループベースコミュニケーションオブジェクトと関連付けられるべき、さまざまなグループベースコミュニケーションアクションを含む許可群を同時に追加又は選択するようプロンプトし得る。図７Ｂは、複数のリクエストされたグループベースコミュニケーションアクションのうちからユーザが選択できるようにするインタフェースの例示的実施形態を示す。図７Ｂに示された実施形態において、クライアントデバイス１０１Ａのユーザは、ワークスペースのためのランチトレインのアプリケーションがatlanta-united（承認されると同時に、サードパーティアプリケーションが許可を付与される、追加のグループベースコミュニケーションチャンネル）におけるメッセージを読み書きできるようにするという選択した状態である。
【０１６４】
ステップ６０５において、承認付与を含む信号をクライアントデバイス１０１Ａのユーザから受信したことに応答して、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションリポジトリ１０７にアクセスすることによって、そのサードパーティアプリケーションプロバイダから受信されたアプリトークンに関連付けられたアプリユーザに関連付けられた許可を変更する。許可リクエストに含まれるグループベースコミュニケーションオブジェクトが、サードパーティアプリケーションの許可されたグループベースコミュニケーションオブジェクトセット内に含まれるように、グループベースコミュニケーションサーバ１０６は許可テーブル３０１を変更する。さらに、許可リクエストに含まれるグループベースコミュニケーションアクションが、サードパーティアプリケーションの許可されたグループベースコミュニケーションアクションセットに含まれるように、グループベースコミュニケーションサーバ１０６はアプリトークンテーブル３０２を変更する。要約すると、承認付与によって許可された（granted by the authorization grant）グループベースコミュニケーションアクション及びグループベースコミュニケーションオブジェクトがサードパーティアプリケーションに関連付けられるように、グループベースコミュニケーションサーバ１０６はグループベースコミュニケーションリポジトリ１０７（すなわちテーブル３０１及び３０２）を変更する。
【０１６５】
例示的実施形態として、図７Ａを参照すると、グループベースコミュニケーションサーバ１０６は、ユーザがアクチュエータボタン７０２をクリックした結果として、承認付与をユーザから受信することもできる。応答として、よってグループベースコミュニケーションサーバ１０６は、許可されたグループベースコミュニケーションオブジェクトセット内にグループベースコミュニケーションチャンネル「atlanta-united」を含むように、ワークスペースのためのランチトレインに関連付けられた許可テーブル３０１を変更する。「スラッシュコマンドを追加する」及び「アプリとしてメッセージをポストする」に対応するグループベースコミュニケーションアクションは、グループベースコミュニケーションスコープ記述子３１３によって特定されるグループベースコミュニケーションスコープに既に含まれているので、ワークスペースのためのランチトレインのアプリケーションの許可されたグループベースコミュニケーションアクションセット内にそれらグループベースコミュニケーションアクションを含むためには、グループベースコミュニケーションリポジトリ１０７のさらなるアップデートは要求されない。このようにして、これらステップ全ての後で、ワークスペースのためのランチトレインのアプリケーションに関連付けられた許可テーブル３０１及びアプリトークンテーブル３０２は、許可されたグループベースコミュニケーションオブジェクトセットを許可されたグループベースコミュニケーションアクションセットにマッピングするよう構成されることになる。
【０１６６】
図７Ｂの異なる実施形態において、グループベースコミュニケーションシステム１０５は、アクションボタン７５０をユーザがクリックする時、イベント群の同様のシーケンスを順次実行するが、このシーケンスは、説明の価値があるいくつかの重要な差異を含む。アクチュエータボタン７５０をユーザがクリックした結果として承認付与を受信したことに応答して、グループベースコミュニケーションサーバ１０６は、ワークスペースのためのランチトレインのアプリケーションに関連付けられた許可テーブル３０１をまず変更する。そこでは、グループベースコミュニケーションサーバ１０６は、許可されたグループベースコミュニケーションオブジェクトセット内に、グループベースコミュニケーションチャンネルatlanta-unitedを含む。
【０１６７】
変更した後、グループベースコミュニケーションサーバ１０６は、ワークスペースのためのランチトレインのアプリケーションの許可されたグループベースコミュニケーションアクションセット内に、atlanta-unitedにおける「リード」及び「ライト」に対応するグループベースコミュニケーションアクションを含むように、グループベースコミュニケーションリポジトリ１０７をそれから変更する。ある実施形態では、このステップは、
ワークスペースのためのランチトレインのアプリケーションの許可されたグループベースコミュニケーションアクション内に、「リード」及び「ライト」に対応するグループベースコミュニケーションアクションを含むように、グループベースコミュニケーションサーバ１０６がアプリトークンテーブル３０２を変更することからなる。アプリトークンテーブル３０２は、それらグループベースコミュニケーションアクションをatlanta-unitedに関連付ける必要もある。そのような実施形態においては、アプリトークンテーブル３０２は、特定のグループベースコミュニケーションオブジェクト（例えばatlanta-united）についてのグループベースコミュニケーションアクションを記憶することをサポートするよう特別に構成されなければならない。よってこの実施形態は、図３Ｃに開示されたアプリトークンテーブルをわずかに変更することしか必要としないことを当業者なら理解するだろう。
【０１６８】
しかし、図７Ｂに関連する他の実施形態では、アプリトークンテーブル３０２（図３Ｂを参照）の特別な変更は必要とされないが、許可されたグループベースコミュニケーションアクションを追加するステップでは、オブジェクト例外テーブル３０３（図３Ｄを参照）の利用が必要とされる。図７Ｂに示されるプロンプトは、atlanta-unitedにおける履歴及びファイルについてのリード、ライト、及びアクセスの許可オプションを提供するので、ワークスペースのためのランチトレインについてのグループベースコミュニケーションスコープ記述子３１３（図３Ｃを参照）は、それらそれぞれのグループベースコミュニケーションスコープ（例えばチャンネル：リード、チャンネル：ライト、チャンネル：履歴）を含む。これは、グループベースコミュニケーションリポジトリ１０７内に例外を含ませなければ、単にatlanta-unitedを許可されたグループベースコミュニケーションオブジェクトセットに追加することによって、ワークスペースのためのランチトレインのアプリケーションに、内の履歴及びファイル（そのオブジェクトタイプは、グループベースコミュニケーションチャンネル）へのリード、ライト、及びアクセスをする許可を与えることになるということを意味する。
【０１６９】
よって、図７Ｂの説明を続けると、この実施形態においては、グループベースコミュニケーションサーバ１０６は、まず承認付与をクライアントデバイス１０１Ａのユーザから受信し（図７Ｂについて上で既に説明したように）、それからatlanta-unitedを許可されたグループベースコミュニケーションオブジェクトセット内に含む（図７Ｂについて上で既に説明されたように）ように、許可テーブル３０１を変更する。これら２つの予備ステップの後に、それからグループベースコミュニケーションサーバ１０６は、許可テーブル３０１において、includes_object_exceptionsのブール型３１５を「真」に設定する。includes_object_exceptionsのブール型３１５を「真」に設定することによって、グループベースコミュニケーションサーバ１０６は、atlanta-unitedについてのワークスペースのためのランチトレインのアプリケーションの許可が少なくとも１つの例外を含むという表示を記憶する。その後、グループベースコミュニケーションサーバ１０６は、atlanta-unitedに関連付けられたエントリを含むように、オブジェクト例外テーブル３０３を変更する（atlanta-unitedの識別子と一致するグループベースコミュニケーションオブジェクト識別子３２６を介して）。そこでは、グループベースコミュニケーションサーバ１０６は、「履歴及びファイルにアクセスすること」（すなわちチャンネル：履歴）は、グループベースコミュニケーションチャンネルatlanta-unitedについて除外されたグループベースコミュニケーションスコープであることを特定するデータを含むように、除外されたグループベースコミュニケーションスコープ３３０を変更する。さらには、オブジェクト例外テーブル３０３は、その例外を、アプリ識別子３２３及びオプションとしては許可識別子３２１を介して、ワークスペースのためのランチトレインのアプリケーションに関連付ける。
【０１７０】
このようにして、グループベースコミュニケーションリポジトリ１０７は、ワークスペースのためのランチトレインのアプリケーションの許可されたグループベースコミュニケーションアクション内に、atlanta-unitedにおいてリードすること及びライトすることというグループベースコミュニケーションアクションを含むように構成される（それぞれのグループベースコミュニケーションスコープは、atlanta-unitedについて除外されないので）。当業者なら、テーブルのエントリの間で正しい関連付けを行うためには、それぞれのテーブル（３０１−３０３）に記憶された識別子が全て一致しなければならないことを理解するだろう。例えば、それら２つのテーブルのエントリの間の関連付けを行うためには、オブジェクト例外テーブル３０３からのアプリ識別子３２３は、許可テーブル３０１内のアプリ識別子３０６と同一でなければならない。
【０１７１】
図７Ｂについて実現される実施形態にかかわらず、さまざまな実施形態について上述のステップの結果、グループベースコミュニケーションリポジトリ１０７は、新しく許可されたグループベースコミュニケーションオブジェクトセットを、新しく許可されたグループベースコミュニケーションアクションセットに適切にマッピングするよう構成される。これは、テーブル３０１、３０２、及びオプションとして３０３に入力される識別子によるアクション変化との暗黙の関連付けから生じる。
【０１７２】
ステップ６０６において、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションに関連付けられた許可への変更を確認するために、信号をサードパーティアプリケーションプロバイダに送信する。ステップ６０６のある具体的な実施形態では、その信号、つまりaction_granted信号は、新しいサードパーティコミュニケーションアクションが承認されたことをサードパーティアプリケーションプロバイダに通知し、これは以下のデータを含み得る。
【０１７３】
{
"token": "verification_token",
"team_id": "T061EG9R6",
"api_app_id": "A0BLA3EP2",
"event": {
"type": "permission_granted",
"permissions": [
"channel:write"
],
"trigger_id": variable_holding_trigger_id
},
"type": "event_callback",
"authed_teams": [],
"event_id": "Ev0BQ5FTL0",
"event_time": 1497911545
}
ステップ６０７において、グループベースコミュニケーションサーバ１０６は、６０６において発行された確認に関連付けられた許可の変更の記述子についてのリクエストを、サードパーティアプリケーションプロバイダ１０２Ａから受信する。ステップ６０８において、応答して、グループベースコミュニケーションサーバ１０６は、新しい許可に伴うグループベースコミュニケーションオブジェクト及びアクションに関する詳細を含むデータを、サードパーティアプリケーションプロバイダ１０２Ａに送信し得る。サードパーティアプリケーションは、その信号をそれから利用することによって、アクションを実行し、それ自身のデータを操作し、将来に参照するために新しい許可のレコードを記憶する等し得る。具体的な例示的実施形態において、第２の送信された信号は、以下の例示的データを含み得る。
【０１７４】
{
"token": "verification_token",
"team_id": "T061EG9R6",
"api_app_id": "A0BLA3EP2",
"event": {
"type": "resources_added",
"resources": [
{
"resource": {
"type": "im",
"grant": {
"type": "specific",
"resource_id": "D0BH95DLH"
}
},
"permissions": [
"chat:write",
"im:read",
"im:history",
"commands"
]
}
]
},
"type": "event_callback",
"authed_teams": [],
"event_id": "Ev0BLTJ7JM",
"event_time": 1497911545
}
一方で、もしステップ６０４において、グループベースコミュニケーションサーバ１０６が拒否メッセージをクライアントデバイス１０１Ａから受信するなら、グループベースコミュニケーションサーバ１０６は、手続きを中止して、ステップ６０５−６０８のいずれも行われないようにする。
【０１７５】
グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションに関連付けられたApp DMを介してユーザが許可を追加できるようにする。例えば、グループベースコミュニケーションサーバ１０６は、ユーザがサードパーティアプリケーションの許可を設定することを可能にするグラフィカルユーザインタフェース、すなわちApp DMをクライアントデバイス１０１Ａにレンダリングさせるデータをクライアントデバイス１０１Ａに送信し得る。このレンダリングは、プロセス６００からステップ６０２の前に起こるだろう。
【０１７６】
図９Ａ−図９Ｉは、App DMのいくつかの実施形態の図示を提供する。図９Ａは、サードパーティアプリケーション−−ワークスペースのためのランチトレイン−−に関連付けられたあるApp DMのための設定タブを示し、ワークスペースのためのランチトレインのアプリケーションの許可を閲覧するための異なるメニューをユーザが見ることできるようにする。図９Ａのこの具体的な実施形態では、設定タブは、タブインジケータ９０１によって示されるように「チャンネルアクセス」と名付けられている。加えて、例えば、少なくともアクチュエータボタン９０２（「チャンネルにアプリを追加する」とラベルが付されている）を介して、グループベースコミュニケーションサーバ１０６は、ワークスペースのためのランチトレインのアプリケーションについての許可されたグループベースコミュニケーションオブジェクトをユーザが変更できるようにし得る。この具体的な実施形態では、ユーザは、グループベースコミュニケーションチャンネルを、サードパーティアプリケーションの許可されたグループベースコミュニケーションオブジェクトセットに追加したいというリクエストをしているので、候補グループベースコミュニケーションセットは、クライアントデバイス１０１Ａのユーザが属しているグループと、クライアントデバイス１０１Ａのユーザのユーザアカウントとの両方に関連付けられたグループベースコミュニケーションチャンネルからなることになる。このようにして、候補グループベースコミュニケーションオブジェクトセットは、グループ識別子（サードパーティアプリケーションがインストールされたグループに関連付けられている）及びユーザ識別子（そのサードパーティアプリケーションについての設定許可のプロセスにあるユーザのユーザアカウントに関連付けられている）に基づいて生成される。
【０１７７】
図９Ａに関して上で説明された実施形態においては、クライアントデバイス１０１Ａのユーザは、サードパーティアプリケーションを、そのユーザ自身がアクセス権限を有しないグループベースコミュニケーションチャンネルには追加することを許されないかもしれない。換言すれば、もしクライアントデバイス１０１Ａのユーザがサードパーティアプリケーションをグループベースコミュニケーションチャンネルに追加したいとリクエストするなら、そのクライアントデバイス１０１Ａのユーザは、プライベートグループベースコミュニケーションチャンネルのメンバでなければならないか、又はパブリックグループベースコミュニケーションチャンネルへのアクセス権限を有しなければならない。もしクライアントデバイス１０１Ａのユーザがグループベースコミュニケーションチャンネルへのアクセス権限を有しないなら、そのユーザは、グループベースコミュニケーションチャンネルに関する許可をサードパーティアプリケーションに付与することが許されない。これは、グループベースコミュニケーションチャンネル及びグループ内の他のグループベースコミュニケーションオブジェクトについての重要な差異である。この差異は、いくつかの実施形態では、グループに属するユーザは、そのグループ内のグループベースコミュニケーションチャンネルの異なるサブセットのメンバであり得るので、重要である。
【０１７８】
グループベースコミュニケーションサーバ１０６は、ユーザが、サードパーティアプリケーションの許可テーブル３０１から許可を除去することも可能にする。図９Ａを参照して、ユーザは、許可されたグループベースコミュニケーションチャンネル名のそれぞれの横にあるアクチュエータボタン（バツ「ｘ」というラベルが付されている）９０３をクリックし得る。このようにして、グループベースコミュニケーションサーバ１０６は、そのような入力を示す信号をクライアントデバイス１０１Ａのユーザから受信したことに応答して、サードパーティアプリケーション及びユーザ入力に関連付けられたグループベースコミュニケーションチャンネルの間のマッピングを除去するよう、許可テーブル３０１を変更し得る。いくつかの実施形態では、グループベースコミュニケーションサーバ１０６は、追加として信号をサードパーティアプリケーションに送信し、ここでその信号は、グループベースコミュニケーションオブジェクトがそのサードパーティアプリケーションに関連付けられた許可から除去されたという通知を含み得る。
【０１７９】
図９Ｂは、App DMのさらに他のタブを示す。ここでは、このタブは、特定のグループ（「My Test Company」）内のワークスペースのためのランチトレインのアプリケーションの許可のサマリーを提供する。図９Ｂに示される実施形態に与えられた許可は、１つの許可されたグループベースコミュニケーションオブジェクトしか含まない。すなわち、それを通してワークスペースのためのランチトレインのアプリケーションが通信し得る１人の特定のユーザを持つApp DMである（すなわちApp DM内でメッセージをリードし、メッセージをライトし、かつ会話履歴にアクセスする）。そのようなタブをレンダリングするために、App DMは、そのサードパーティアプリケーションに関連付けられた許可テーブル及びアプリトークンテーブルの両方にアクセスし、相互参照することによって、サードパーティアプリケーションに関連付けられた許可を必ず得なければならない（そのアプリユーザアカウント及びアプリ識別子を介して）。
【０１８０】
図９Ｃは、App DMのもう１つのタブを示す。ここでは、このタブは、App DMタブにアクセスする許可を持つユーザと、ワークスペースのためのランチトレインのアプリケーションとの間の会話の履歴を提供する。図９Ｃに示されるタブは、「会話タブ」と参照され得る。さらに図９Ｃに示されるタブは、サードパーティアプリケーションによってアクセス可能であるメッセージをユーザがポストできるようにする。大まかには、図９Ｃに示されるタブは、ユーザがサードパーティアプリケーションとインタラクトできるようにもする。例えば、図９Ｃは、「これをしよう」を表示するインタラクティブボタン９０８を示す。他の実施形態では、インタラクティブボタン９０８は、複数の可能なディスプレイスクリーンインタラクティブ要素のうちの任意の１つに置換され得る。ユーザは、そのボタンをクリックすると、入力信号をサードパーティアプリケーションに送信し得て、サードパーティアプリケーションにも送信され得るグループベースコミュニケーションシステム内のイベント信号をトリガし得る。サードパーティアプリケーションは、これら信号を用いて、適切な機能を実行し得る。大まかには、図９Ｃに示されるタブは、グループベースコミュニケーションチャンネルと同様に機能し得る。
【０１８１】
図９Ｄは、ユーザがアクチュエータボタン９０２を介してアプリをチャンネルに追加するよう選択した候補グループベースコミュニケーションチャンネルセットを示す。メニュー９０９は、候補グループベースコミュニケーションチャンネルをユーザのために表示し、このチャンネルは、この具体的な実施形態では、atlanta-united、general、random、及びprivate-channel-2のグループベースコミュニケーションチャンネルからなる。このように、クライアントデバイス１０２Ａのユーザは、それらのグループベースコミュニケーションチャンネルのうちの任意の１つをメニュー９０９を介して選択し得る。グループベースコミュニケーションサーバ１０６は、今度は、そのユーザが選択したグループベースコミュニケーションチャンネルにアクセスするための許可をサードパーティアプリケーション（App DMに関連付けられている）に付与し得る。この実施形態では、クライアントデバイス１０２Ａのユーザは、グループベースコミュニケーションサーバ１０６がそのグループベースコミュニケーションチャンネルをメニュー９０９内のオプションとしてリストする前には、グループベースコミュニケーションチャンネルへのアクセスを有していなければならない。
【０１８２】
前の実施形態の変形例においては、ユーザが、メニュー９０９（図９Ｄを参照）内にリストされた候補グループベースコミュニケーションチャンネルのうちの１つ、又はメニュー９１５（図９Ａを参照）、９２５（図９Ｄを参照）、又は９３５（図９Ｆを参照）のいずれかにリストされた許可されたグループベースコミュニケーションチャンネルのうちの１つを選択した後に、グループベースコミュニケーションサーバ１０６Ａは、サードパーティアプリケーションの許可に含むよう、１つ以上のチャンネルオブジェクトセットを選択するようユーザをプロンプトし得る。この実施形態では、グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａのユーザが、選択されたグループベースコミュニケーションチャンネルのそれぞれのチャンネルオブジェクトセットの一部を形成するグループベースコミュニケーションオブジェクトをメニューから選択的に選ぶことができるようにするインタフェースをクライアントデバイス１０１Ａに送信する。
【０１８３】
そのようなインタフェースの例示的実施形態は、図９Ｇに示される。図９Ｇは、ユーザがグループベースコミュニケーションチャンネル「atlanta-united」をメニュー９０９（図９Ｄを参照）のようなメニューから選択した後で、クライアントデバイス１０１Ａを介してレンダリングされたインタフェースを示す。同様のインタフェースは、メニュー９１５（図９Ａを参照）、メニュー９２５（図９Ｄを参照）、又はメニュー９３５（図９Ｆを参照）の任意のものにリストされた許可されたグループベースコミュニケーションチャンネルの１つをユーザが選択した後に、クライアントデバイス１０１Ａを介してレンダリングされ得る。クライアントデバイス１０１Ａのユーザは、そのサードパーティアプリケーションがアクセスを獲得するであろうグループベースコミュニケーションオブジェクトを選択的に選ぶために、そのインタフェースとインタラクトし得る。図９Ｇは、グループベースコミュニケーションチャンネル内の全てのオブジェクト（すなわちフルチャンネルオブジェクトセット）に関しての許可を追加するオプションをユーザに与えることによって、グループベースコミュニケーションチャンネル内のグループベースコミュニケーションオブジェクトを選択的に選ぶか、又はチャンネルオブジェクトセット内のグループベースコミュニケーションオブジェクトのいずれにもアクセスを提供しない。その後、グループベースコミュニケーションサーバ１０６がクライアントデバイス１０１Ａから承認付与を受信した後で、例えば、ユーザが選択をしてボタンアクチュエータ９５０をクリックした後で起こるであろうことのように、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションに関連付けられた許可を変更することによって、ユーザによって選択され付与された新しい許可を反映させる。
【０１８４】
許可の変更は、本開示の「グループベースコミュニケーションリポジトリ」とラベルが付されたセクションにおける関連する説明のような、本開示の他のセクションにおいて説明されるものであり得る。さらに、チャンネルオブジェクトセット内のグループベースコミュニケーションオブジェクトを選択的に選ぶというこの機能は、オブジェクト例外テーブル３０３を介してイネーブルされる。オブジェクト例外テーブル３０３は、少なくとも除外されたオブジェクト識別子３２８及び除外されたオブジェクトタイプ３２７を介して、チャンネルオブジェクトセット内の選択されたグループベースコミュニケーションオブジェクトを追跡する。オブジェクト例外テーブル３０３の使用は、図７Ｂについての前の説明で示されており、その説明は、オブジェクト例外テーブル３０３を利用して除外されたグループベースコミュニケーションスコープを追跡することに代えて、そのテーブルは、ここでは、チャンネルオブジェクトセットに関連する許可から除外されたグループベースコミュニケーションオブジェクトを追跡するために利用されるという、わずかな変更だけでこの実施形態に当てはまる。この結果は、よってグループベースコミュニケーションシステム１０５は、オブジェクト例外テーブル３０３を利用することによって、サードパーティアプリケーションにアクセス可能であるチャンネルオブジェクトセット内のグループベースコミュニケーションオブジェクトを決定し得るということになる。
【０１８５】
前の実施形態の他の変形例では、ユーザが、メニュー９０９（図９Ｄを参照）にリストされた候補グループベースコミュニケーションチャンネルの１つ、又はメニュー９１５（図９Ａを参照）、９２５（図９Ｄを参照）、又は９３５（図９Ｆを参照）のいずれかにリストされた許可されたグループベースコミュニケーションチャンネルの１つを選択した後で、グループベースコミュニケーションサーバ１０６Ａは、サードパーティアプリケーションの許可の中に含むように、１つ以上のグループベースコミュニケーションアクションを選択するようユーザをプロンプトし得る。この実施形態では、グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａのユーザが、グループベースコミュニケーションアクションをメニューから選択的に選ぶことができるようにするインタフェースをクライアントデバイス１０１Ａに送信する。
【０１８６】
そのようなインタフェースの例示的実施形態は、図９Ｈに示される。図９Ｈは、ユーザがグループベースコミュニケーションチャンネル「atlanta-united」をメニュー９０９（図９Ｄを参照）のようなメニューから選択した後に、クライアントデバイス１０１Ａを介してレンダリングされたインタフェースを示す。同様のインタフェースは、ユーザが、メニュー９１５（図９Ａを参照）、９２５（図９Ｄを参照）、又は９３５（図９Ｆを参照）のいずれかにリストされる許可されたグループベースコミュニケーションチャンネルの１つを選択した後、クライアントデバイス１０１Ａを介してレンダリングされ得る。クライアントデバイス１０１Ａのユーザは、インタフェースとインタラクトすることによって、グループベースコミュニケーションチャンネル「atlanta-united」についてサードパーティアプリケーションがとり得るグループベースコミュニケーションアクションを選択的に選び得る。図９Ｈは、（Ａ）同じオブジェクトタイプについてワークスペースのためのランチトレインのアプリケーションがふつう獲得する全てのグループベースコミュニケーションアクションを追加する（すなわち（ａ）オブジェクトタイプ−−この場合、グループベースコミュニケーションチャンネル−−及び（ｂ）グループベースコミュニケーションアクションのペアリングにおいて特定されるそのようなグループベースコミュニケーションアクションであって、これらペアリングは、ワークスペースのためのランチトレインに関連付けられたアプリトークンテーブル３０２のグループベースコミュニケーションスコープ記述子３１３において特定される）、（Ｂ）ワークスペースのためのランチトレインが「atlanta-united」においてとり得るグループベースコミュニケーションアクションを選択的に選ぶ、又は（Ｃ）「atlanta-united」についていかなるグループベースコミュニケーションアクションも承認しないというオプションをユーザに与える。
【０１８７】
その後、ユーザが選択をし、ボタンアクチュエータ９７０をクリックした後に起こるような、グループベースコミュニケーションサーバ１０６がクライアントデバイス１０１Ａから承認付与を受信した後に、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションに関連付けられた許可を変更することによって、ユーザによって選択され付与された新しい許可を反映させる。許可の変更は、本開示の「グループベースコミュニケーションリポジトリ」とラベルが付されたセクションにおける関連する説明のような、本開示の他のセクションにおいて説明されるものであり得る。さらに、グループベースコミュニケーションオブジェクトについてグループベースコミュニケーションアクションを選択的に選ぶというこの機能は、オブジェクト例外テーブル３０３を介してイネーブルされる。オブジェクト例外テーブル３０３は、少なくとも除外されたグループベースコミュニケーションスコープ３３０を介して、全てのグループベースコミュニケーションチャンネルについてワークスペースのためのランチトレインのアプリケーションに与えられた選択されたグループベースコミュニケーションアクションを追跡する。
【０１８８】
前の実施形態のさらに他の変形例では、ユーザがメニュー９０９（図９Ｄを参照）にリストされる候補グループベースコミュニケーションチャンネルの１つ、又はメニュー９１５（図９Ａを参照）、９２５（図９Ｄを参照）、又は９３５（図９Ｆを参照）のいずれかにリストされる許可されたグループベースコミュニケーションチャンネルの１つを選択した後に、グループベースコミュニケーションサーバ１０６Ａは、１つ以上のグループベースコミュニケーションオブジェクトに関連した１つ以上のグループベースコミュニケーションオブジェクト及びグループベースコミュニケーションアクションを選択するようユーザにプロンプトし得る。この実施形態では、グループベースコミュニケーションサーバ１０６は、クライアントデバイス１０１Ａのユーザがメニューからグループベースコミュニケーションオブジェクト及びグループベースコミュニケーションアクションを選択的に選ぶことができるようにするために、インタフェースをクライアントデバイス１０１Ａに送信する。
【０１８９】
そのようなインタフェースの例示的実施形態は、図９Ｉに示される。図９Ｉは、ユーザがグループベースコミュニケーションチャンネル「atlanta-united」をメニュー９０９（図９Ｄを参照）のようなメニューから選択した後に、クライアントデバイス１０１Ａを介してレンダリングされたインタフェースを示す。同様のインタフェースは、ユーザが、メニュー９１５（図９Ａを参照）、９２５（図９Ｄを参照）、又は９３５（図９Ｆを参照）のいずれかにリストされる許可されたグループベースコミュニケーションチャンネルの１つを選択した後、クライアントデバイス１０１Ａを介してレンダリングされ得る。クライアントデバイス１０１Ａのユーザは、インタフェースとインタラクトすることによって、チャンネルオブジェクトセットを含むグループベースコミュニケーションオブジェクトを選択的に選び得る。追加として、クライアントデバイス１０１Ａのユーザは、インタフェースとインタラクトすることによって、チャンネルオブジェクトセットを含む選択されたグループベースコミュニケーションオブジェクトについてサードパーティアプリケーションがとり得るグループベースコミュニケーションアクションを選択的に選び得る。この意味で、図９Ｉは、グループベースコミュニケーションチャンネル内の全てのオブジェクト（すなわちフルチャンネルオブジェクトセット）についての許可を追加するか、グループベースコミュニケーションチャンネル内のグループベースコミュニケーションオブジェクト及び関連付けられたグループベースコミュニケーションアクションを選択的に選ぶか、又はチャンネルオブジェクトセット内のグループベースコミュニケーションオブジェクトのいずれにもアクセスを提供しないというオプションをユーザに与える。
【０１９０】
その後、ユーザが選択し、ボタンアクチュエータ９９０をクリックした後に起こるように、グループベースコミュニケーションサーバ１０６がクライアントデバイス１０１Ａから承認付与を受信した後、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションに関連付けられた許可を変更することによって、ユーザによって選択され付与された新しい許可を反映する。許可の変更は、本開示の「グループベースコミュニケーションリポジトリ」とラベルが付されたセクションにおける関連する説明のような、本開示の他のセクションにおいて説明されるものであり得る。
【０１９１】
図９Ｅは、クライアントデバイスのユーザが図９Ａに示されるようなアクチュエータボタン９０４をクリックつまりアクティベートした後にレンダリングされる許可インタフェースを示す。アクチュエータボタン９０４に付随する記述子において表現されるように、クライアントデバイス１０２Ａのユーザは、サードパーティアプリケーションを、サードパーティアプリケーションがインストールされているグループ内で利用可能な全てのパブリックチャンネルに「一括して」追加する。よって、図９Ｅについては、もしユーザが許可リクエストを認めるならグループベースコミュニケーションサーバ１０６は、許可されたグループベースコミュニケーションオブジェクトセット内の、そのグループ識別子（アプリユーザアカウント及びリクエストをしているユーザのユーザアカウントによって共有されている同じグループ識別子）に関連付けられた全てのパブリックチャンネルを含むように、問題のサードパーティアプリケーションに関連付けられた許可テーブル３０１を変更する。この実施形態において許可を「一括して」追加することは、図５Ｃ、アクチュエータ５０９、及びそこへの許可の「一括して」の追加について既に述べられた説明と同様である。
【０１９２】
図９Ｆは、図９Ａに示されるようにクライアントデバイスのユーザが、アクチュエータボタン９０５をクリックつまりアクティベートした後にレンダリングされる許可インタフェースを示す。アクチュエータボタン９０５は、サードパーティアプリケーションがグループ識別子に関連付けられた全てのパブリックチャンネルにアクセスする許可を付与された場合にだけ、利用可能になることに注意されたい。アクチュエータボタン９０５に付随する記述子において表現されるように、クライアントデバイス１０２Ａのユーザは、特定のグループベースコミュニケーションチャンネルを、許可されたグループベースコミュニケーションオブジェクトセットから除外し得る。いくつかの実施形態では、図９Ｇに示されるメニュー９０６は、許可されたグループベースコミュニケーションオブジェクトセット内のそれらのパブリックグループベースコミュニケーションチャンネルだけからなる。ユーザがメニュー９０６に提供されたグループベースコミュニケーションチャンネルのいずれか１つをクリックする時、ユーザは、選択されたグループベースコミュニケーションチャンネルが、そのサードパーティアプリケーションに関連付けられた許可されたグループベースコミュニケーションオブジェクトセットから除去されることを実質的にリクエストする。グループベースコミュニケーションシステム１０５は、この機能を、図３Ｂに描かれた許可テーブル３０１内のis_exclusionブール変数を介してこの機能をイネーブルする。特定のグループベースコミュニケーションオブジェクトに関連付けられたこのis_exclusionブール変数は、そのグループベースコミュニケーションオブジェクトが、サードパーティアプリケーション（すなわちアプリ識別子を介してグループベースコミュニケーションオブジェクトに関連付けられたサードパーティ）に関連付けられた許可から除外されなければならないことを示すために、「真」に設定される。
【０１９３】
除外されたパブリックチャンネルのリストに含まれる任意のグループベースコミュニケーションチャンネルは、アクチュエータボタン９０３について上で説明されたように、同様の方法を介してそのようなリストから除去され得る。同じタイプのアクチュエータは、いったん任意のグループベースコミュニケーションチャンネルがユーザによってこのリストに追加されたら、図９Ｇにおける除外されたパブリックチャンネルをリストするメニューに含まれ得る。もしグループベースコミュニケーションチャンネルが図９Ｆの「除外されたパブリックチャンネル」メニューの下でリストされていたなら示されるであろうように、アクチュエータボタンは、グループベースコミュニケーションチャンネルが除外されていることを示すエントリの横に現れる。
【０１９４】
一般に、図９Ａ−図９Ｉについて、グループベースコミュニケーションサーバ１０６は、（ａ）グループベースコミュニケーションチャンネルのチャンネルオブジェクトセットの一部を形成する１つ以上のグループベースコミュニケーションオブジェクト及び／又は（ｂ）１つ以上のグループベースコミュニケーションチャンネルの、許可されたグループベースコミュニケーションオブジェクトセットへの追加を示す一連の入力をクライアントデバイス１０１Ａから受信する。応答として、グループベースコミュニケーションサーバ１０６は、ユーザ選択及び入力に関連付けられた許可に対応するデータ構造を生成する。さらに、グループベースコミュニケーションサーバ１０６は、App DMを介したユーザ入力に従って、追加の許可、すなわち追加の許可されたグループベースコミュニケーションオブジェクト及び許可されたグループベースコミュニケーションアクションのマッピングを含むように、許可テーブル３０１及びアプリトークンテーブル３０２を変更する。いくつかの実施形態では、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションに信号を追加で送信し、ここでそのような信号は、新しいグループベースコミュニケーションオブジェクトがサードパーティアプリケーションに関連付けられた許可に追加されたという通知を含み得る。これらのプロセスは、図６について説明されたステップと類似する。
【０１９５】
グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションに関連付けられた許可を追加又は除去する他の方法を提供し得る。例えば、ユーザは、コマンドをグループベースコミュニケーションチャンネルにポストし得る。ある実施形態では、このコマンドは、スラッシュコマンド−−「/invite」又は「/kick」のような最初にスラッシュを含むようにフォーマットされた文字列で、グループベースコミュニケーションシステム内でコマンドを起動する−−の形態をとり得る。グループベースコミュニケーションサーバ１０６は、そのようなコマンドを受信することに応答して、信号をクライアントデバイス１０１Ａに生成及び送信し得る。図６に関連して上で説明されたように、信号は、サードパーティアプリケーションに対する追加の許可を承認又は拒否するよう（例えば「/invite」コマンドについて）、又はサードパーティアプリケーションからの許可の除去を承認又は拒否するよう（例えば「/kick」コマンドについて）ユーザをプロンプトし得る。
【０１９６】
図６に関連しても説明されたように、この実施形態で議論された信号は、それを通してユーザが、サードパーティアプリケーションについてのリクエストされた追加の許可又は許可の除去を承認又は拒否し得る、グループベースコミュニケーションオブジェクト許可インタフェースをクライアントデバイス１０１Ａにレンダリングさせ得る。この意味で、図６に関連して、及び許可の承認又は拒否について、上で提供された全ての教示は、ここで説明される実施形態に関連する。よって、グループベースコミュニケーションサーバ１０６は、ユーザが追加の許可をサードパーティアプリケーションに付与したことを示す信号を受信することに応答して、サードパーティアプリケーション及び追加された許可の間の追加のマッピング関連付けを含むように、許可テーブル３０１及びアプリトークンテーブル３０２を必要に応じて変更し得る。
【０１９７】
いくつかの実施形態では、必要に応じてテーブル３０１及び３０２を変更した後に、グループベースコミュニケーションサーバ１０６は、通知信号をサードパーティアプリケーションプロバイダ１０２Ａに追加で送信することによって、受信者に許可がサードパーティアプリケーションに追加されたことを知らせる。同様に、グループベースコミュニケーションサーバ１０６は、ユーザがサードパーティアプリケーションからの許可の除去を認可したことを示す信号を受信することに応答して、サードパーティアプリケーション及び問題の許可の間のマッピング関連付けを除去するように、許可テーブル３０１及びアプリトークンテーブル３０２を必要に応じて変更し得る。その後、グループベースコミュニケーションサーバ１０６は、通知信号をサードパーティアプリケーションプロバイダに送信することによって、許可がサードパーティアプリケーションから除去されたことを受信者に知らせる。
【０１９８】
サードパーティアプリケーションに許可を追加又は除去するためにグループベースコミュニケーションサーバ１０６が提供する方法は、上で説明された方法には限定されない。例えば、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションチャンネル上で、又はグループベースコミュニケーションチャンネルに関連付けられたプロフィール内でインタラクティブリンクを提供し得る。グループベースコミュニケーションサーバ１０６は、よってユーザに、そのインタラクティブリンクに関連付けられたグループベースコミュニケーションチャンネルに関してサードパーティアプリケーションについての許可の追加又は除去を許し得る。そのような実施形態では、追加の許可及び許可を除去することをリクエストするために既に提供された説明は、サードパーティアプリケーションから許可を追加又は除去することをユーザに許すように、実現され得る。
【０１９９】
プログレッシブ許可
グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションが追加の許可をリクエストすることもできるようにする。このように許可を拡張することは、プログレッシブ許可と呼ばれるが、これは、サードパーティアプリケーションが、サードパーティアプリケーションがインストールされているグループに関連付けられた許可テーブル３０１及びアプリトークンテーブル３０２に対して、徐々に許可をリクエストし、追加し得るからである。このようにして、サードパーティアプリケーションは、以前はサードパーティアプリケーションに利用不可能だったグループベースコミュニケーションオブジェクトについてアクションをとり得る。代替として、サードパーティアプリケーションは、以前は許可されていたグループベースコミュニケーションオブジェクトについて追加のアクションをとり得る。
【０２００】
図８Ａは、サードパーティアプリケーションが、追加の許可を徐々にリクエストする手続きの実施形態を示す。ステップ８０１において、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションとのユーザインタラクションが起こったことを示す信号をクライアントデバイスから受信する。いくつかの実施形態では、この信号を生成するインタラクションは、サードパーティアプリケーションに関連付けられたインタラクティブボタンに向けられたクライアントデバイス１０１Ａのユーザによって提供された入力−−例えばインタラクティブボタン上でのクリック−−を含み得る。サードパーティアプリケーションは、例えば、App DMグループベースコミュニケーションチャンネル内でそのようなインタラクティブボタンをポストし得る。他の実施形態では、インタラクティブボタンは、複数の可能なディスプレイスクリーンインタラクティブ要素のうちのいずれか１つによって代替され得る。さらに、他の実施形態では、この信号を生成するインタラクションは、サードパーティアプリケーションに関連付けられたスラッシュコマンドの起動を含み得る。スラッシュコマンドの起動は、例えば、App DMグループベースコミュニケーションチャンネル上にコマンドをタイピングするクライアントデバイス１０１Ａのユーザによって発生され得る。
【０２０１】
それに応答して、ステップ８０２において、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションプロバイダに関連付けられたＵＲＩに、ステップ８０１におけるインタラクションに関連付けられたイベントに関連付けられたトリガ識別子を含む信号を送信する。
【０２０２】
ステップ８０３において、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションプロバイダ１０２Ａから、サードパーティアプリケーションプロバイダに関連付けられたサードパーティアプリケーションについての許可をアップグレードしたいというリクエストを含む信号を受信する。いくつかの実施形態では、許可をアップグレードしたいというリクエストを含む信号は、アプリトークン、リクエストされた追加のグループベースコミュニケーションオブジェクト及びアクションのリスト、及び以前に生成されサードパーティアプリケーションプロバイダに送信されたトリガ識別子に関連する情報を含む。
【０２０３】
ステップ８０４において、サードパーティアプリケーションの許可をアップグレードしたいというリクエストを含む信号を受信することに応答して、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーションに対する追加の許可を承認又は拒否するようユーザをプロンプトする。このプロンプトは、クライアントデバイスによって受信される時、クライアントデバイスにグループベースコミュニケーションオブジェクト許可インタフェースをレンダリングさせる、グループベースコミュニケーションサーバからの命令の形態であり得る。そのようなグループベースコミュニケーションオブジェクト許可インタフェースの例示的実施形態は、図７Ａ及び図７Ｂのものであり得る。しかし、他の実施形態では、グループベースコミュニケーションオブジェクト許可インタフェースは、図５Ｂのものであり得る。図５Ｂ、図７Ａ、及び図７Ｂについての以前の説明は、プロセス８００にも等しく適用される。図５Ｂを参照して、グループベースコミュニケーションサーバ１０６は、サードパーティアプリケーション「ワークスペースのためのランチトレイン」への承認付与のために、そのユーザがメンバである全てのチャンネル内で「スラッシュコマンドを追加する」及び「アプリとしてメッセージをポストする」に許可をするようクライアントデバイス１０１Ａのユーザをプロンプトする。
【０２０４】
この実施形態の追加の変形例では、グループベースコミュニケーションサーバ１０６は、さまざまなグループベースコミュニケーションアクション及びグループベースコミュニケーションオブジェクトを含む許可を同時に追加することの承認のために、クライアントデバイス１０１Ａのユーザをプロンプトする。図８Ｂは、複数のリクエストされたグループベースコミュニケーションオブジェクト及びグループベースコミュニケーションアクションの中からユーザが選択することを許すインタフェースの例示的実施形態を示す。図８Ｂに描かれた実施形態では、クライアントデバイス１０１Ａのユーザは、atlanta-united（グループベースコミュニケーションチャンネル）にアクセスする許可をワークスペースのためのランチトレインのアプリケーションに付与するよう選択しており、ユーザは、ワークスペースのためのランチトレインのアプリケーションがatlanta-unitedにおいてメッセージをリード及びライトすることを許すよう選択している。
【０２０５】
ステップ８０５において、グループベースコミュニケーションサーバ１０６は、ユーザが追加の許可についてのリクエストを承認したか、又はそのようなリクエストを拒否したかを示すデータをクライアントデバイス１０１Ａから受信する。もしユーザがそのリクエストを承認したなら、グループベースコミュニケーションサーバ１０６は、承認付与を受信し、これは、サーバがステップ８０６に入るようさせる。
【０２０６】
ステップ８０６において、承認付与を含む信号をクライアントデバイス１０１Ａのユーザから受信することに応答して、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションリポジトリ１０７にアクセスすることによって、必要に応じて、サードパーティアプリケーションプロバイダから受信されたアプリトークンに関連付けられたアプリユーザアカウントに関連付けられた許可テーブル３０１及びアプリトークンテーブル３０２を変更する。グループベースコミュニケーションサーバ１０６は、許可リクエストに含まれるグループベースコミュニケーションアクションが、サードパーティアプリケーションのグループベースコミュニケーションアクションの許可されたセットに含まれるように、必要に応じて、許可テーブル３０１及びアプリトークンテーブル３０２（いくつかの実施形態ではオブジェクト例外テーブル３０３）を変更する。
【０２０７】
例示的実施形態として、図５Ｂを参照すると、グループベースコミュニケーションサーバ１０６は、ユーザが「承認」ボタンアクチュエータ５０５を選択した結果として、ユーザから承認確認メッセージを受信し得る。その応答として、グループベースコミュニケーションサーバ１０６は、グループベースコミュニケーションスコープ記述子３１３によって特定された許可されたグループベースコミュニケーションスコープ内に「スラッシュコマンドを追加する」及び「アプリとしてメッセージをポストする」を含むように、よってワークスペースのためのランチトレインのアプリケーションに関連付けられたアプリトークンテーブル３０２を変更する。
【０２０８】
ステップ８０７において、グループベースコミュニケーションサーバ１０６は、信号をサードパーティアプリケーションプロバイダに送信することによって、サードパーティアプリケーションに関連付けられた許可への変更を確認する。ステップ８０７のある具体的な実施形態では、信号action_grantedは、新しいグループベースコミュニケーションアクションが承認されたことをサードパーティアプリケーションプロバイダに通知し、以下のデータを含み得る。
【０２０９】
{
"token": "verification_token",
"team_id": "T061EG9R6",
"api_app_id": "A0BLA3EP2",
"event": {
"type": "permission_granted",
"permissions": [
"channel:write"
],
"trigger_id": variable_holding_trigger_id
},
"type": "event_callback",
"authed_teams": [],
"event_id": "Ev0BQ5FTL0",
"event_time": 1497911545
}
ステップ８０８において、グループベースコミュニケーションサーバ１０６は、ステップ８０７で発行された確認に関連付けられた許可への変更の記述子を求めるリクエストをサードパーティアプリケーションプロバイダ１０２Ａから受信する。ステップ８０９において、その応答として、グループベースコミュニケーションサーバ１０６は、新しい許可に関与するグループベースコミュニケーションオブジェクト及びアクションについての詳細を含むデータをサードパーティアプリケーションプロバイダ１０２Ａへ送信し得る。サードパーティアプリケーションは、アクションを実行し、それ自身のデータを操作し、将来の参照のための新しい許可のレコードを記憶する等のために、信号をそれから利用し得る。具体的な例示的実施形態では、第２の送信された信号は、以下の例示的データを含み得る。
【０２１０】
{
"token": "verification_token",
"team_id": "T061EG9R6",
"api_app_id": "A0BLA3EP2",
"event": {
"type": "resources_added",
"resources": [
{
"resource": {
"type": "im",
"grant": {
"type": "specific",
"resource_id": "D0BH95DLH"
}
},
"permissions": [
"chat:write",
"im:read",
"im:history",
"commands"
]
}
]
},
"type": "event_callback",
"authed_teams": [],
"event_id": "Ev0BLTJ7JM",
"event_time": 1497911545
}
一方で、もしステップ８０５においてグループベースコミュニケーションサーバ１０６がクライアントデバイス１０１Ａのユーザが追加の許可を求めるリクエストを承認しなかったことを示す拒否メッセージを受信するなら、その場合は、グループベースコミュニケーションサーバ１０６は、手続きを中止し、サードパーティアプリケーションプロバイダに拒否の通知を含む信号を送信する。
【０２１１】
グループベースコミュニケーションシステム１０５は、許可ＡＰＩを介してそのようなプログレッシブ許可を可能にする。許可ＡＰＩは、アプリユーザアカウントに、したがってそれに関連付けられたサードパーティアプリケーションに、時間の経過に伴う許可の変化について知らせるメソッド及びイベントタイプのコレクションであり、それと共に、追加の許可をリクエストするためにアプリユーザアカウントにＡＰＩコールを発行する能力を与える。例えば、異なるパラメータ（アプリトークン、追加のグループベースコミュニケーションオブジェクト及びアクションのリスト、及びトリガ識別子についての情報）を含み得る、許可をアップグレードするためのリクエストを含む信号について上で８０３において説明されたステップは、グループベースコミュニケーションサーバ１０６に送られるＡＰＩコールを介して実現され得る。
【０２１２】
このセクションで説明されたプログレッシブ許可は、ＡＰＩコールを介してサードパーティアプリケーションによってリクエストされるが、前のセクションで説明された許可を追加ことの方法に類似する。しかし、これら２つの特徴は、基本的に異なる。例えば、グループベースコミュニケーションチャンネルをサードパーティアプリケーションに関連付けられた許可に追加することは、サードパーティアプリケーションに関連付けられたApp DM、及び対応するApp DMオブジェクトを介してなされ得る。その場合は、サードパーティアプリケーションからグループベースコミュニケーションサーバ１０６へのＡＰＩコールは必要ではない。代わりに、グループベースコミュニケーションサーバ１０６は、ある種の入力をユーザから直接に受信したことに応答して、グループベースコミュニケーションオブジェクト許可インタフェースをレンダリングするのに必要なプロンプト及び信号を生成する。一方で、許可ＡＰＩは、サードパーティアプリケーションが、グループベースコミュニケーションサーバ１０６に信号を送信することによって、追加の許可をリクエストできるようにする。いくつかの実施形態では、サードパーティアプリケーションは、サードパーティアプリケーションとのユーザインタラクションに応答してのみ、これらプログレッシブ許可をリクエストし得る。
【０２１３】
グループベースコミュニケーションシステム１０５のさまざまな実現例は、図１０−図１７に開示されている。図１０は、グループベースコミュニケーションシステム１０５においてグループベースコミュニケーションオブジェクトに許可を選択的に承認する例示的プロセス１０００を示す。この方法は、アプリユーザアカウント識別子及びサードパーティアプリケーション識別子を含むアプリユーザアカウントを生成することから始まり、ここでアプリユーザアカウントは、グループ識別子１００１に関連付けられている。この方法は、続いて、グループ識別子に基づいて、複数のグループベースコミュニケーションオブジェクト１００２を備える候補グループベースコミュニケーションオブジェクトセットを生成する。この方法は、続いて、許可されたグループベースコミュニケーションオブジェクトセット１００３を生成するために、ユーザがグループ識別子に関連付けられたサードパーティアプリケーションについての許可を承認できるように構成された許可インタフェースを生成する。この方法は、続いて、アプリユーザアカウントに関連付けられた許可テーブルを生成し、この許可テーブルは、サードパーティアプリケーション識別子及びグループ識別子１００４を含む。この方法は、続いて、サードパーティアプリケーション識別子及びグループ識別子１００５を含むアプリトークンを生成する。最後に、この方法は、アプリトークンをサードパーティアプリケーションプロバイダ１００６に送信することで終了する。
【０２１４】
プロセス１０００の他の実施形態では、プロセスステップ１００１−１００６に加えて、候補グループベースコミュニケーションオブジェクトセットは、グループベースコミュニケーションチャンネル、プライベートマルチパーティダイレクトメッセージ、パブリックグループベースコミュニケーションチャンネル、プライベートダイレクトメッセージ、ファイル、及びユーザアカウントを含む。この具体的な実施形態のさらなる変化形では、許可インタフェースは、候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成され、許可されたグループベースコミュニケーションオブジェクトセットは、候補グループベースコミュニケーションオブジェクトセットのサブセットを含む。
【０２１５】
プロセス１０００の他の実施形態では、プロセスステップ１００１−１００６に加えて、アプリユーザアカウントは、ユーザ識別子にさらに関連付けられ、候補グループベースコミュニケーションオブジェクトセットは、グループ識別子及びユーザ識別子に基づいて生成される。
【０２１６】
プロセス１０００の他の変形例では、許可インタフェースは、候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである。
【０２１７】
プロセス１０００の他の変形例では、許可インタフェースは、候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである。
【０２１８】
プロセス１０００の他の変形例では、許可インタフェースは、候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクト及び候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである。
【０２１９】
プロセス１０００の他の変形例では、許可インタフェースは、（ａ）許可されたグループベースコミュニケーションオブジェクトセットに含まれるグループベースコミュニケーションオブジェクト又は（ｂ）許可されたグループベースコミュニケーションアクションセットに含まれるグループベースコミュニケーションアクションのうちの少なくとも１つに関連する許可の変更をユーザが承認できるように構成された許可アップデートインタフェースである。
【０２２０】
図１１は、プロセス１１００を示し、これは、プロセス１０００の変形例である。プロセス１１００において、ステップ１１０１−１１０６は、ステップ１００１−１００６の変更されたバージョンを含まれる。この差異がここで説明される。許可インタフェースは、１１０３において、許可されたグループベースコミュニケーションオブジェクトセット内のグループベースコミュニケーションオブジェクトのそれぞれについての許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成される。さらに、この実施形態では、１１０４において、許可テーブルは、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセットの間でのマッピング関連付けを少なくとも部分的には実現する、マッピングデータをさらに含む。最後に、この実施形態では、１００３において、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセットは、アプリユーザアカウント識別子に関連付けられる。ステップ１１０１−１１０６の残りの部分は、既に説明されたステップ１００１−１００６と類似である。
【０２２１】
プロセス１１００の他の変形例では、候補グループベースコミュニケーションオブジェクトセットは、そのユーザ識別子に関連付けられたユーザにアクセス可能である複数のグループベースコミュニケーションチャンネルである。さらに、許可されたグループベースコミュニケーションオブジェクトセットは、許可されたグループベースコミュニケーションチャンネルセットである。
【０２２２】
図１２は、プロセス１２００を示し、これは、プロセス１１００の変形例である。ここでは、１２０１において、ステップ１１０１−１１０６に加えて、プロセスは、続いて、アプリユーザアカウント識別子１２０１に関連付けられた許可アップデートリクエストを受信する。このプロセスは、それから続いて、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセット１２０２のユーザ変更を可能にするよう構成された許可アップデートインタフェースを生成する。最後に、プロセスは、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセット１２０３のユーザ変更に基づいて、グループベースコミュニケーションリポジトリ１０７をアップデートすることで終了する。
【０２２３】
プロセス１２００の他の実施形態では、これは、そのプロセスの変形例であるが、許可インタフェースは、候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成される。さらに、許可されたグループベースコミュニケーションオブジェクトセットは、候補グループベースコミュニケーションオブジェクトセットのサブセットを含む。
【０２２４】
図１３は、プロセス１３００を示し、これは、プロセス１０００の変形例である。プロセス１３００では、ステップ１３０１−１３０６は、ステップ１００１−１００６の変更されたバージョンを含む。ここでは、ステップ１３０２において、候補グループベースコミュニケーションオブジェクトセットは、ユーザ識別子に関連付けられたユーザにアクセス可能である複数のグループベースコミュニケーションチャンネルである。ステップ１３０３について、許可されたグループベースコミュニケーションオブジェクトセットは、許可されたグループベースコミュニケーションチャンネルセットであり、許可インタフェースは、許可されたグループベースチャンネルセットのそれぞれについて許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成された許可アップデートインタフェースであり、許可されたグループベースコミュニケーションチャンネルセット及び許可されたグループベースコミュニケーションアクションセットは、アプリユーザアカウント識別子に関連付けられている。ステップ１３０４について、許可テーブルは、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するマッピングデータをさらに含む。プロセスステップ１３０１−１３０６の残りの部分は、プロセス１０００について説明したように、対応するステップ１００１−１００６と同じである。
【０２２５】
プロセス１３００の他の実施形態及び変形例では、このプロセスは、許可されたグループベースチャンネルセットのそれぞれのグループベースコミュニケーションチャンネルがチャンネルオブジェクトセットに関連付けられ、許可インタフェースは、チャンネルオブジェクトセットについての許可アクションのユーザ選択を可能にするようさらに構成されることを含む。
【０２２６】
図１４は、プロセス１４００を示し、これは、プロセス１０００の変形例である。プロセス１０００の全てのステップに加えて、プロセス１４００は、また続いて、候補グループベースコミュニケーションオブジェクトセット１４０１を許可テーブルに記憶する。プロセスは、続いて、１４０２において、（ａ）許可インタフェースを介したユーザ選択と同時に、選択表示（selection indication）を、候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに関連付けること、及び（ｂ）許可インタフェースによる許可アクションのユーザ選択と同時に、許可アクションを、選択表示に関連付けられた候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに関連付けることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成する。プロセスは、続いて、グループベースコミュニケーションリポジトリ内に、許可されたグループベースコミュニケーションオブジェクトセット１４０３を記憶する。
【０２２７】
図１５は、プロセス１５００を示し、これはプロセス１０００の変形例である。プロセス１０００の全てのステップに加えて、プロセス１５００は、また続いて、サードパーティアプリケーションプロバイダにトリガ識別子１５０１を送信する。このプロセスは、続いて、アプリユーザアカウント識別子１５０２に関連付けられた許可アップデートリクエストを受信する。プロセスは、続いて、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセット１５０３のうちの少なくとも１つのユーザ変更を可能にするよう構成された許可アップデートインタフェースを生成する。プロセスは、続いて、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセット１５０４のうちの少なくとも１つのユーザ変更に基づいて、グループベースコミュニケーションリポジトリをアップデートする。プロセスは、続いて、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセット１５０５のうちの少なくとも１つのユーザ変更を確認する確認メッセージをサードパーティアプリケーションプロバイダに送信する。
【０２２８】
ある実施形態では、プロセス１５００は、（ａ）ユーザが、グループベースコミュニケーションインタフェースのインタラクティブボタンをクリックしたことを示すクリック信号、又は（ｂ）ユーザが、グループベースコミュニケーションインタフェースを介してスラッシュコマンドを起動したことを示すコマンド信号のうちの少なくとも１つを受信することに応答して、トリガ識別子をサードパーティアプリケーションプロバイダに送信する。
【０２２９】
図１６は、プロセス１６００を示し、これは、プロセス１０００の変形例である。プロセス１０００の全てのステップに加えて、プロセス１６００は、続いて、グループベースコミュニケーションインタフェース内でレンダリングするよう構成されるApp DMを生成し、このApp DMは、複数のタブを含み、少なくとも１つのタブは、App DM１６０１に関連付けられたサードパーティアプリケーションのための設定タブである。このプロセスは、続いて、App DMの設定タブのユーザ関与（user engagement）に応答して、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成される許可インタフェースを生成し、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセット１６０２のうちの少なくとも１つのユーザ変更に基づいてグループベースコミュニケーションリポジトリをアップデートする。
【０２３０】
ある実施形態では、プロセス１６００の変形例であり、このApp DMは、アプリユーザアカウント又はサードパーティアプリケーションプロバイダによってポストされたメッセージングコミュニケーションを表示するよう構成されたApp DMグループベースコミュニケーションチャンネルを含む。
【０２３１】
図１７は、プロセス１７００を示し、これは、プロセス１０００の変形例である。プロセス１０００の全てのステップに加えて、プロセス１７００は、続いて、アプリユーザアカウント識別子に関連付けられたリクエストを受け取り、ここでそのリクエストは、グループベースコミュニケーションオブジェクトを許可テーブル１７０１に追加する表示を含む。このプロセスは、続いて、許可されたグループベースコミュニケーションオブジェクトセット１７０２の変更のユーザ承認を可能にするよう構成されたグループベースコミュニケーション許可インタフェースを生成する。プロセスは、続いて、許可されたグループベースコミュニケーションオブジェクトセットの変更のユーザ承認に基づいて許可テーブルをアップデートする。
【０２３２】
結論
多くの改変及び他の実施形態には、本開示が関連する技術における当業者なら、前述の記載及び関連する図面において提示された教示を利用し、想到することができよう。したがって、本開示は、開示された特定の実施形態に限定されるべきではなく、改変及び他の実施形態は、添付の特許請求の範囲の範囲内に含まれるよう意図されていると理解されるべきである。ここでは特定の語が採用されているが、それらは一般的な叙述的な意味で用いられているのに過ぎず、限定を目的としたものではない。
【図１】
2021509746.tif 000003
【図２】
2021509746.tif 000004
【図３Ａ】
2021509746.tif 000005
【図３Ｂ】
2021509746.tif 000006
【図３Ｃ】
2021509746.tif 000007
【図３Ｄ】
2021509746.tif 000008
【図４Ａ】
2021509746.tif 000009
【図４Ｂ】
2021509746.tif 000010
【図４Ｃ】
2021509746.tif 000011
【図４Ｄ】
2021509746.tif 000012
【図５Ａ】
2021509746.tif 000013
【図５Ｂ】
2021509746.tif 000014
【図５Ｃ】
2021509746.tif 000015
【図６】
2021509746.tif 000016
【図７Ａ】
2021509746.tif 000017
【図７Ｂ】
2021509746.tif 000018
【図８Ａ】
2021509746.tif 000019
【図８Ｂ】
2021509746.tif 000020
【図９Ａ】
2021509746.tif 000021
【図９Ｂ】
2021509746.tif 000022
【図９Ｃ】
2021509746.tif 000023
【図９Ｄ】
2021509746.tif 000024
【図９Ｅ】
2021509746.tif 000025
【図９Ｆ】
2021509746.tif 000026
【図９Ｇ】
2021509746.tif 000027
【図９Ｈ】
2021509746.tif 000028
2021509746.tif 000029
【図９Ｉ】
2021509746.tif 000030
【図１０】
2021509746.tif 000031
【図１１】
2021509746.tif 000032
【図１２】
2021509746.tif 000033
【図１３】
2021509746.tif 000034
【図１４】
2021509746.tif 000035
【図１５】
2021509746.tif 000036
【図１６】
2021509746.tif 000037
【図１７】
2021509746.tif 000038
【手続補正書】
【提出日】令和2年7月1日(2020.7.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
グループベースコミュニケーションサーバ、グループベースコミュニケーションリポジトリ、及び複数のグループベースコミュニケーションチャンネルを備える、グループベースコミュニケーションシステム内でグループベースコミュニケーションオブジェクトに選択的に許可を付与する装置であって、前記装置は、少なくとも１つのプロセッサ及びコンピュータプログラムコードを含む少なくとも１つのメモリを備え、前記少なくとも１つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも１つのプロセッサと共に、前記装置に
アプリユーザアカウント識別子及びサードパーティアプリケーション識別子を備えるアプリユーザアカウントを生成することであって、
前記アプリユーザアカウントは、グループ識別子に関連付けられている
アプリユーザアカウントを生成すること、
前記グループ識別子に基づいて、複数のグループベースコミュニケーションオブジェクトを備える候補グループベースコミュニケーションオブジェクトセットを生成すること、
前記グループ識別子に関連付けられたサードパーティアプリケーションについての許可をユーザが承認できるように構成された許可インタフェースを生成すること、
前記アプリユーザアカウントに関連付けられた許可テーブルを生成することであって、
前記許可テーブルは、前記サードパーティアプリケーション識別子及び前記グループ識別子を含む
許可テーブルを生成すること、
前記サードパーティアプリケーション識別子及び前記グループ識別子を含むアプリトークンを生成すること、及び
前記アプリトークンをサードパーティアプリケーションプロバイダに送信すること
をさせるように構成された、装置。
【請求項２】
前記許可インタフェースは、許可されたグループベースコミュニケーションオブジェクトセット内の前記グループベースコミュニケーションオブジェクトのそれぞれについての許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成され、
前記許可テーブルは、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するマッピングデータをさらに含み、
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットは、前記アプリユーザアカウント識別子に関連付けられる
請求項１に記載の装置。
【請求項３】
前記コンピュータプログラムコードは、前記装置に、
前記アプリユーザアカウント識別子に関連付けられた許可アップデートリクエストを受け取ること、
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットのユーザ変更を可能にするよう構成される許可アップデートインタフェースを生成すること、及び
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの前記ユーザ変更に基づいて前記グループベースコミュニケーションリポジトリをアップデートすること
をさらにさせるように構成された
請求項２に記載の装置。
【請求項４】
前記候補グループベースコミュニケーションオブジェクトセットは、グループベースコミュニケーションチャンネル、プライベートマルチパーティダイレクトメッセージ、パブリックグループベースコミュニケーションチャンネル、プライベートダイレクトメッセージ、ファイル、及びユーザアカウントを含む
請求項１に記載の装置。
【請求項５】
前記アプリユーザアカウントは、ユーザ識別子にさらに関連付けられ、
前記候補グループベースコミュニケーションオブジェクトセットは、前記グループ識別子及び前記ユーザ識別子に基づいて生成される
請求項１に記載の装置。
【請求項６】
前記候補グループベースコミュニケーションオブジェクトセットは、前記ユーザ識別子に関連付けられたユーザにアクセス可能である複数のグループベースコミュニケーションチャンネルであり、
前記許可されたグループベースコミュニケーションオブジェクトセットは、許可されたグループベースコミュニケーションチャンネルセットである
請求項５に記載の装置。
【請求項７】
前記許可インタフェースは、前記許可されたグループベースコミュニケーションチャンネルセットのそれぞれについて許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成された許可アップデートインタフェースであり、
前記許可テーブルは、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するマッピングデータをさらに含み、
前記許可されたグループベースコミュニケーションチャンネルセット及び前記許可されたグループベースコミュニケーションアクションセットは、前記アプリユーザアカウント識別子に関連付けられる
請求項６に記載の装置。
【請求項８】
前記許可されたグループベースコミュニケーションチャンネルセットのうちのそれぞれのグループベースコミュニケーションチャンネルは、チャンネルオブジェクトセットに関連付けられ、
前記許可アップデートインタフェースは、前記チャンネルオブジェクトセットについての許可アクションのユーザ選択を可能にするようさらに構成される
請求項７に記載の装置。
【請求項９】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成され、
前記許可されたグループベースコミュニケーションオブジェクトセットは、前記候補グループベースコミュニケーションオブジェクトセットのサブセットを含む
請求項４に記載の装置。
【請求項１０】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成され、
前記許可されたグループベースコミュニケーションオブジェクトセットは、前記候補グループベースコミュニケーションオブジェクトセットのサブセットを含む
請求項３に記載の装置。
【請求項１１】
前記コンピュータプログラムコードは、前記装置に
前記許可テーブル内に、前記候補グループベースコミュニケーションオブジェクトセットを記憶すること、
前記許可インタフェースを介して、ユーザ選択と同時に、選択表示を、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに、関連付けること、及び
前記許可インタフェースによる許可アクションのユーザ選択と同時に、前記許可アクションを、前記選択表示に関連付けられた前記候補グループベースコミュニケーションオブジェクトセットの前記１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに、関連付けること
によって、
許可されたグループベースコミュニケーションオブジェクトセットを生成すること、及び
前記許可テーブル内に、前記許可されたグループベースコミュニケーションオブジェクトセットを記憶すること
をさらにさせるよう構成される
請求項１に記載の装置。
【請求項１２】
前記コンピュータプログラムコードは、前記装置に
前記サードパーティアプリケーションプロバイダにトリガ識別子を送信すること、
前記アプリユーザアカウント識別子に関連付けられた許可アップデートリクエストを受信すること、
（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成される許可アップデートインタフェースを生成すること、
（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更に基づいて、前記グループベースコミュニケーションリポジトリをアップデートすること、
（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更を確認する確認メッセージを、前記サードパーティアプリケーションプロバイダに送信すること
をさらにさせるよう構成される
請求項１に記載の装置。
【請求項１３】
前記コンピュータプログラムコードは、前記装置に
（ａ）グループベースコミュニケーションインタフェースのインタラクティブボタンをユーザがクリックしたことを示すクリック信号、又は（ｂ）ユーザがグループベースコミュニケーションインタフェースを介してスラッシュコマンドを起動したことを示すコマンド信号のうちの少なくとも１つを受信することに応答して、前記トリガ識別子を前記サードパーティアプリケーションプロバイダに送信すること
をさらにさせるよう構成される
請求項１２に記載の装置。
【請求項１４】
前記コンピュータプログラムコードは、前記装置に
グループベースコミュニケーションインタフェース内にレンダリングするよう構成されたApp DM（アプリ  ダイレクトメッセージ）を生成することであって、前記App DMは複数のタブを含み、少なくとも１つのタブは、前記App DMに関連付けられたサードパーティアプリケーションについての設定タブである、
App DMを生成すること、及び
前記App DMの前記設定タブのユーザ関与に応答して、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成されたインタフェースを生成すること、及び（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更に基づいて、前記グループベースコミュニケーションリポジトリをアップデートすること
をさらにさせるよう構成される
請求項１に記載の装置。
【請求項１５】
前記App DMは、前記アプリユーザアカウント又は前記サードパーティアプリケーションプロバイダによってポストされたメッセージングコミュニケーションを表示するよう構成されたApp DMグループベースコミュニケーションチャンネルを含む
請求項１４に記載の装置。
【請求項１６】
前記コンピュータプログラムコードは、前記装置に
前記アプリユーザアカウント識別子に関連付けられたリクエストを受信することであって、前記リクエストは、グループベースコミュニケーションオブジェクトを前記許可テーブルに追加する表示を含む、
リクエストを受信すること、
許可されたグループベースコミュニケーションオブジェクトセットの変更のユーザ承認を可能にするよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースを生成すること、及び
前記許可されたグループベースコミュニケーションオブジェクトセットの変更の前記ユーザ承認に基づいて、前記許可テーブルをアップデートすること
をさらにさせるよう構成される
請求項１に記載の装置。
【請求項１７】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項１に記載の装置。
【請求項１８】
前記許可インタフェースは、候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項１に記載の装置。
【請求項１９】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクト及び候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項１に記載の装置。
【請求項２０】
前記許可インタフェースは、（ａ）許可されたグループベースコミュニケーションオブジェクトセットに含まれるグループベースコミュニケーションオブジェクト、又は（ｂ）許可されたグループベースコミュニケーションアクションセットに含まれるグループベースコミュニケーションアクションのうちの少なくとも１つに関連する許可の変更をユーザが承認できるように構成された許可アップデートインタフェースである
請求項１に記載の装置。
【請求項２１】
グループベースコミュニケーションサーバ、グループベースコミュニケーションリポジトリ、及び複数のグループベースコミュニケーションチャンネルを備える、グループベースコミュニケーションシステム内でグループベースコミュニケーションオブジェクトに選択的に許可を付与する方法であって、
アプリユーザアカウント識別子及びサードパーティアプリケーション識別子を備えるアプリユーザアカウントを生成することであって、
前記アプリユーザアカウントは、グループ識別子に関連付けられている
アプリユーザアカウントを生成すること、
前記グループ識別子に基づいて、複数のグループベースコミュニケーションオブジェクトを備える候補グループベースコミュニケーションオブジェクトセットを生成すること、
許可されたグループベースコミュニケーションオブジェクトセットを生成するために、前記グループ識別子に関連付けられたサードパーティアプリケーションについての許可をユーザが承認できるように構成された許可インタフェースを生成すること、
前記アプリユーザアカウントに関連付けられた許可テーブルを生成することであって、
前記許可テーブルは、前記サードパーティアプリケーション識別子及び前記グループ識別子を含む
許可テーブルを生成すること、
前記サードパーティアプリケーション識別子及び前記グループ識別子を含むアプリトークンを生成すること、及び
前記アプリトークンをサードパーティアプリケーションプロバイダに送信すること
を含む方法。
【請求項２２】
前記許可インタフェースは、前記許可されたグループベースコミュニケーションオブジェクトセット内の前記グループベースコミュニケーションオブジェクトのそれぞれについての許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成され、
前記許可テーブルは、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するデータをさらに含み、
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットは、前記アプリユーザアカウント識別子に関連付けられる
請求項２１に記載の方法。
【請求項２３】
前記アプリユーザアカウント識別子に関連付けられた許可アップデートリクエストを受け取ること、
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットのユーザ変更を可能にするよう構成される許可アップデートインタフェースを生成すること、及び
前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの前記ユーザ変更に基づいて前記グループベースコミュニケーションリポジトリをアップデートすること
をさらに含む
請求項２２に記載の方法。
【請求項２４】
前記候補グループベースコミュニケーションオブジェクトセットは、グループベースコミュニケーションチャンネル、プライベートマルチパーティダイレクトメッセージ、パブリックグループベースコミュニケーションチャンネル、プライベートダイレクトメッセージ、ファイル、及びユーザアカウントを含む
請求項２１に記載の方法。
【請求項２５】
前記アプリユーザアカウントは、ユーザ識別子にさらに関連付けられ、
前記候補グループベースコミュニケーションオブジェクトセットは、前記グループ識別子及び前記ユーザ識別子に基づいて生成される
請求項２１に記載の方法。
【請求項２６】
前記候補グループベースコミュニケーションオブジェクトセットは、前記ユーザ識別子に関連付けられたユーザにアクセス可能である複数のグループベースコミュニケーションチャンネルであり、
前記許可されたグループベースコミュニケーションオブジェクトセットは、許可されたグループベースコミュニケーションチャンネルセットである
請求項２５に記載の方法。
【請求項２７】
前記許可インタフェースは、前記許可されたグループベースコミュニケーションチャンネルセットのそれぞれについて許可アクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成された許可アップデートインタフェースであり、
前記許可テーブルは、前記許可されたグループベースコミュニケーションオブジェクトセット及び前記許可されたグループベースコミュニケーションアクションセットの間のマッピング関連付けを少なくとも部分的に実現するマッピングデータをさらに含み、
前記許可されたグループベースコミュニケーションチャンネルセット及び前記許可されたグループベースコミュニケーションアクションセットは、前記アプリユーザアカウント識別子に関連付けられる
請求項２６に記載の方法。
【請求項２８】
前記許可されたグループベースコミュニケーションチャンネルセットのうちのそれぞれのグループベースコミュニケーションチャンネルは、チャンネルオブジェクトセットに関連付けられ、
前記許可インタフェースは、前記チャンネルオブジェクトセットについての許可アクションのユーザ選択を可能にするようさらに構成される
請求項２７に記載の方法。
【請求項２９】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成され、
前記許可されたグループベースコミュニケーションオブジェクトセットは、前記候補グループベースコミュニケーションオブジェクトセットのサブセットを含む
請求項２４に記載の方法。
【請求項３０】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成され、
前記許可されたグループベースコミュニケーションオブジェクトセットは、前記候補グループベースコミュニケーションオブジェクトセットのサブセットを含む
請求項２３に記載の方法。
【請求項３１】
前記許可テーブル内に、前記候補グループベースコミュニケーションオブジェクトセットを記憶すること、
前記許可インタフェースを介して、ユーザ選択と同時に、選択表示を、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに、関連付けること、及び
前記許可インタフェースによる許可アクションのユーザ選択と同時に、前記許可アクションを、前記選択表示に関連付けられた前記候補グループベースコミュニケーションオブジェクトセットの前記１つ以上のグループベースコミュニケーションオブジェクトのそれぞれに、関連付けること
によって、
許可されたグループベースコミュニケーションオブジェクトセットを生成すること、及び
前記許可テーブル内に、前記許可されたグループベースコミュニケーションオブジェクトセットを記憶すること
をさらに含む
請求項２１に記載の方法。
【請求項３２】
前記サードパーティアプリケーションプロバイダにトリガ識別子を送信すること、
前記アプリユーザアカウント識別子に関連付けられた許可アップデートリクエストを受信すること、
（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成される許可アップデートインタフェースを生成すること、
（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更に基づいて、前記グループベースコミュニケーションリポジトリをアップデートすること、
（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更を確認する確認メッセージを、前記サードパーティアプリケーションプロバイダに送信すること
をさらに含む
請求項２１に記載の方法。
【請求項３３】
（ａ）グループベースコミュニケーションインタフェースのインタラクティブボタンをユーザがクリックしたことを示すクリック信号、又は（ｂ）ユーザがグループベースコミュニケーションインタフェースを介してスラッシュコマンドを起動したことを示すコマンド信号のうちの少なくとも１つを受信することに応答して、前記トリガ識別子を前記サードパーティアプリケーションプロバイダに送信すること
をさらに含む
請求項３２に記載の方法。
【請求項３４】
グループベースコミュニケーションインタフェース内にレンダリングするよう構成されたApp DMを生成することであって、前記App DMは複数のタブを含み、少なくとも１つのタブは、前記App DMに関連付けられたサードパーティアプリケーションについての設定タブである、
App DMを生成すること、及び
前記App DMの前記設定タブのユーザ関与に応答して、（ａ）許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つのユーザ変更を可能にするよう構成されたインタフェースを生成すること、及び（ａ）前記許可されたグループベースコミュニケーションオブジェクトセット、又は（ｂ）前記許可されたグループベースコミュニケーションアクションセットのうちの少なくとも１つの前記ユーザ変更に基づいて、前記グループベースコミュニケーションリポジトリをアップデートすること
をさらに含む
請求項２１に記載の方法。
【請求項３５】
前記App DMは、前記アプリユーザアカウント又は前記サードパーティアプリケーションプロバイダによってポストされたメッセージングコミュニケーションを表示するよう構成されたApp DMグループベースコミュニケーションチャンネルを含む
請求項３４に記載の方法。
【請求項３６】
前記アプリユーザアカウント識別子に関連付けられたリクエストを受信することであって、前記リクエストは、グループベースコミュニケーションオブジェクトを前記許可テーブルに追加する表示を含む、
リクエストを受信すること、
許可されたグループベースコミュニケーションオブジェクトセットの変更のユーザ承認を可能にするよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースを生成すること、及び
前記許可されたグループベースコミュニケーションオブジェクトセットの前記変更の前記ユーザ承認に基づいて、前記許可テーブルをアップデートすること
をさらに含む
請求項２１に記載の方法。
【請求項３７】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクトのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項２１に記載の方法。
【請求項３８】
前記許可インタフェースは、候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項２１に記載の方法。
【請求項３９】
前記許可インタフェースは、前記候補グループベースコミュニケーションオブジェクトセットの１つ以上のグループベースコミュニケーションオブジェクト及び候補グループベースコミュニケーションアクションセットの１つ以上のグループベースコミュニケーションアクションのユーザ選択を可能にすることによって、許可されたグループベースコミュニケーションオブジェクトセット及び許可されたグループベースコミュニケーションアクションセットを生成するよう構成されたグループベースコミュニケーションオブジェクト許可インタフェースである
請求項２１に記載の方法。
【請求項４０】
前記許可インタフェースは、（ａ）許可されたグループベースコミュニケーションオブジェクトセットに含まれるグループベースコミュニケーションオブジェクト、又は（ｂ）許可されたグループベースコミュニケーションアクションセットに含まれるグループベースコミュニケーションアクションのうちの少なくとも１つに関連する許可の変更をユーザが承認できるように構成された許可アップデートインタフェースである
請求項２１に記載の方法。
【国際調査報告】
2021509746.tif 000039
2021509746.tif 000040
2021509746.tif 000041