このページでは、Google Workspace Events API を使用して Google Workspace リソースに サブスクリプションをルーティングしますGoogle Workspace サブスクリプション アプリが Google Workspace イベントに関する情報を リソースの変更を表します。内容 Google Workspace Events API でサポートされるリソースとイベントの種類については、 Google Workspace Events API の概要をご覧ください。
このページでは、Google Workspace を作成する手順について説明します。 定期購入:
- 環境を設定する。
- Google Cloud Pub/Sub トピックを作成してサブスクライブする。このトピックは、次の目的で使用します。 Google Workspace のイベントを受信できます
- Google Workspace Events API の
create()
を呼び出す メソッドをSubscription
リソースです。 - Google Workspace サブスクリプションをテストして、Pub/Sub が トピックは、ユーザーがサブスクライブしているイベントを受信します。
- 必要に応じて、アプリのエンドポイントにイベントを push する方法を構成して、 アプリがイベントを処理し、必要に応じてアクションを実行できます。
前提条件
Apps Script
- このガイドの Google Cloud CLI コマンドを使用するには:
<ph type="x-smartling-placeholder">
- </ph>
- Google Cloud CLI をインストールします。
- 宛先<ph type="x-smartling-placeholder"></ph>
gcloud
CLI を初期化してから、次のコードを実行します。
gcloud init
- Google Cloud プロジェクト 課金が有効になっている必要がありますChat のサブスクリプションでは、 Cloud プロジェクトで Chat API を有効にし、 [アプリ名]、[アバターの URL]、[説明] を構成します 表示されます。詳しくは、 Google Chat アプリを作成します。
- OAuth 同意画面で構成されたユーザー認証が必要です クリックします。同意画面を設定するときに、スコープを指定する必要があります。 サポートしていることがわかります。同意ステータスを設定するには 必要なスコープを特定するには、このモジュールの スコープを選択する。
- Apps Script プロジェクトには次のような特徴があります。
- Apps Script。
- OAuth 同意画面を構成するために追加したスコープについては、
スコープを Apps Script プロジェクトの
appsscript.json
ファイルに設定します。 次に例を示します。 - 有効にする
Google Workspace Events
拡張サービス。
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
Python
- Python 3.6 以降
- pip パッケージ管理ツール
- 最新の Python 用 Google クライアント ライブラリ。これらをインストールまたは更新するには、次のコマンドを実行します。
コマンドを使用します。
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- このガイドの Google Cloud CLI コマンドを使用するには:
<ph type="x-smartling-placeholder">
- </ph>
- Google Cloud CLI をインストールします。
- 宛先<ph type="x-smartling-placeholder"></ph>
gcloud
CLI を初期化してから、次のコードを実行します。
gcloud init
- Google Cloud プロジェクト 課金が有効になっている必要がありますChat のサブスクリプションでは、 Cloud プロジェクトで Chat API を有効にし、 [アプリ名]、[アバターの URL]、[説明] を構成します 表示されます。詳しくは、 Google Chat アプリを作成します。
- OAuth 同意画面で構成されたユーザー認証が必要です クリックします。同意画面を設定するときに、スコープを指定する必要があります。 サポートしていることがわかります。同意ステータスを設定するには 必要なスコープを特定するには、このモジュールの スコープを選択する。
環境の設定
次のセクションでは、作成する前に環境を設定する方法について説明します。 Google Workspace サブスクリプションを 必要ありません
Google Workspace Events API と Google Cloud Pub/Sub API を有効にする
Google API を使用する前に、Google Cloud プロジェクトで有効にする必要があります。 1 つの Google Cloud プロジェクトで 1 つ以上の API を有効にできます。Google Cloud コンソール
Google Cloud コンソールで、アプリの Google Cloud プロジェクトを開き、 Google Workspace Events API と Pub/Sub API:
gcloud
作業ディレクトリで、Google アカウントにログインします。
gcloud auth login
プロジェクトをアプリの Cloud プロジェクトに設定します。
gcloud config set project PROJECT_ID
PROJECT_ID
を次の内容に置き換えます。 アプリの Cloud プロジェクトのプロジェクト ID。Google Workspace Events API と Google Cloud Pub/Sub を有効にする API:
gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com
OAuth クライアント ID を作成する
アプリケーションの種類を選択して、OAuth クライアント ID の作成方法を確認します。
ウェブ アプリケーション
- Google Cloud コンソールで、メニュー > [API と[サービス] > [認証情報] に移動します。
- [認証情報を作成] > [OAuth クライアント ID] をクリックします。
- [アプリケーションの種類] > [ウェブ アプリケーション] をクリックします。
- [名前] フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
- アプリに関連する承認済み URI を追加します。
<ph type="x-smartling-placeholder">
- </ph>
- クライアントサイド アプリ(JavaScript) - [承認済みの JavaScript 生成元] で [URI を追加] をクリックします。次に、ブラウザ リクエストに使用する URI を入力します。アプリケーションが OAuth 2.0 サーバーに API リクエストを送信できるドメインを識別します。
- サーバーサイド アプリ(Java、Python など) - [承認済みのリダイレクト URI] で [URI を追加] をクリックします。次に、OAuth 2.0 サーバーがレスポンスを送信できるエンドポイント URI を入力します。
- [作成] をクリックします。OAuth クライアントの作成画面が表示され、新しいクライアント ID とクライアント シークレットが表示されます。
クライアント ID をメモします。クライアント シークレットはウェブ アプリケーションには使用されません。
- [OK] をクリックします。新しく作成された認証情報が [OAuth 2.0 クライアント ID] に表示されます。
Android
- Google Cloud コンソールで、メニュー > [API と[サービス] > [認証情報] に移動します。
- [認証情報を作成] > [OAuth クライアント ID] をクリックします。
- [アプリケーションの種類] > [Android] をクリックします。
- [名前] 欄フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
- [Package name](パッケージ名)フィールドに、
AndroidManifest.xml
ファイルのパッケージ名を入力します。 - [SHA-1 証明書フィンガープリント]フィールドに、生成された SHA-1 証明書フィンガープリントを入力します。
- [作成] をクリックします。OAuth クライアントの作成画面が開き、新しいクライアント ID が表示されます。
- [OK] をクリックします。新しく作成した認証情報が [OAuth 2.0 クライアント ID] に表示されます。
iOS
- Google Cloud コンソールで、メニュー > [API と[サービス] > [認証情報] に移動します。
- [認証情報を作成] > [OAuth クライアント ID] をクリックします。
- [アプリケーションの種類] > [iOS] をクリックします。
- [名前] 欄フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
- [バンドル ID] に入力します。フィールドに、アプリの
Info.plist
ファイルに記載されているバンドル ID を入力します。 - 省略可: アプリが Apple App Store に表示されている場合は、App Store ID を入力します。
- 省略可: [チーム ID]フィールドに、Apple によって生成され、チームに割り当てられている一意の 10 文字の文字列を入力します。
- [作成] をクリックします。OAuth クライアントの作成画面が表示され、新しいクライアント ID とクライアント シークレットが表示されます。
- [OK] をクリックします。新しく作成した認証情報が [OAuth 2.0 クライアント ID] に表示されます。
Chrome アプリ
- Google Cloud コンソールで、メニュー > [API と[サービス] > [認証情報] に移動します。
- [認証情報を作成] > [OAuth クライアント ID] をクリックします。
- [アプリケーションの種類] > [Chrome アプリ] をクリックします。
- [名前] 欄フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
- [アプリケーション ID] 欄フィールドに、アプリの一意の 32 文字の ID 文字列を入力します。この ID 値は、アプリの Chrome ウェブストア URL と Chrome ウェブストア デベロッパー ダッシュボードで確認できます。
- [作成] をクリックします。OAuth クライアントの作成画面が表示され、新しいクライアント ID とクライアント シークレットが表示されます。
- [OK] をクリックします。新しく作成した認証情報が [OAuth 2.0 クライアント ID] に表示されます。
デスクトップ アプリ
- Google Cloud コンソールで、メニュー > [API と[サービス] > [認証情報] に移動します。
- [認証情報を作成] > [OAuth クライアント ID] をクリックします。
- [アプリケーションの種類] > [デスクトップ アプリ] をクリックします。
- [名前] フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
- [作成] をクリックします。OAuth クライアントの作成画面が表示され、新しいクライアント ID とクライアント シークレットが表示されます。
- [OK] をクリックします。新しく作成された認証情報が [OAuth 2.0 クライアント ID] に表示されます。
テレビ、入力デバイスが制限される
- Google Cloud コンソールで、メニュー > [API と[サービス] > [認証情報] に移動します。
- [認証情報を作成] > [OAuth クライアント ID] をクリックします。
- [アプリケーションの種類] > [テレビ、入力デバイスが制限される。
- [名前] 欄フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
- [作成] をクリックします。OAuth クライアントの作成画面が表示され、新しいクライアント ID とクライアント シークレットが表示されます。
- [OK] をクリックします。新しく作成した認証情報が [OAuth 2.0 クライアント ID] に表示されます。
ユニバーサル Windows プラットフォーム(UWP)
- Google Cloud コンソールで、メニュー > [API と[サービス] > [認証情報] に移動します。
- [認証情報を作成] > [OAuth クライアント ID] をクリックします。
- [アプリケーションの種類] > [Universal Windows Platform (UWP)] をクリックします。
- [名前] 欄フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
- [Store ID] で、欄に、アプリの一意の 12 文字の Microsoft Store ID 値を入力します。この ID は、アプリの Microsoft Store の URL とパートナー センターで確認できます。
- [作成] をクリックします。OAuth クライアントの作成画面が表示され、新しいクライアント ID とクライアント シークレットが表示されます。
- [OK] をクリックします。新しく作成した認証情報が [OAuth 2.0 クライアント ID] に表示されます。
クライアント シークレットの JSON ファイルをダウンロードする
クライアント シークレット ファイルは、OAuth クライアント ID の JSON 表現です 認証情報を提供します。
Google Cloud コンソールで、メニュー > API とサービス > [認証情報] をタップします。
に移動します。[OAuth 2.0 クライアント ID] で、作成したクライアント ID をクリックします。
[JSON をダウンロード] をクリックします。
ファイルを
client_secrets.json
として保存します。
Pub/Sub トピックを作成してサブスクライブする
このセクションでは、Pub/Sub トピックとサブスクリプションを作成します。 付けます。Pub/Sub トピックは Google Workspace サブスクリプションが できます。
Pub/Sub トピックの作成と管理の詳細については、このモジュールの Pub/Sub ドキュメント をタップします。
Pub/Sub トピックを作成してサブスクライブするには:
Google Cloud コンソール
Google Cloud コンソールで、[Pub/Sub] ページに移動します。
アプリの Cloud プロジェクトが選択されていることを確認します。
[
トピックを作成] をクリックします。 次の操作を行います。- トピックの名前を入力します(例:
workspace-events-topic
)。 - [デフォルトのサブスクリプションを追加する] は選択されたままにしておきます。Pub/Sub は
トピックの名前に似たデフォルトのサブスクリプションです。
workspace-events-topic-sub
。 - 省略可: 追加のプロパティを更新または設定する 選択します。
- トピックの名前を入力します(例:
[作成] をクリックします。完全なトピック名は次の形式です:
projects/PROJECT_ID/topics/TOPIC_ID
。 このフルネームは後のステップで使用します。トピックに Pub/Sub メッセージをパブリッシュするためのアクセス権を付与します。
- トピックのページのサイドパネルで [権限] タブ。
- [プリンシパルを追加] をクリックします。
- [プリンシパルの追加] フィールドに、プロジェクトのサービス アカウントを追加します。
Google Workspace アプリケーションで
定期購入:
<ph type="x-smartling-placeholder">
- </ph>
- Chat イベントの場合:
chat-api-push@system.gserviceaccount.com
。 - Meet のイベントでは、
meet-api-event-push@system.gserviceaccount.com
。
- Chat イベントの場合:
- [ロールの割り当て] メニューで、[
Pub/Sub Publisher
] を選択します。 - [保存] をクリックします。権限の更新には数分かかることがあります 選択します。
gcloud
Cloud プロジェクトで、次のコマンドを実行してトピックを作成します。 command:
gcloud pubsub topics create TOPIC_ID
TOPIC_ID
は、トピックの一意の ID(workspace-events-topic
として。出力には、完全なトピック名が
projects/PROJECT_ID/topics/TOPIC_ID
。 名前をメモし、 PROJECT_ID は、Cloud プロジェクト ID です。 提供しますトピック名は次の手順で使用します。 サブスクリプションを後で行うこともできます。トピックにメッセージをパブリッシュするためのアクセス権を付与します。
gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'
次のように置き換えます。
TOPIC_NAME
: 完全なトピック名。 出力します。形式projects/PROJECT_ID/topics/TOPIC_ID
。GOOGLE_WORKSPACE_APPLICATION
: イベントの配信先を指定する必要がある Google Workspace アプリケーション サブスクリプション:- Chat からイベントを受信するには、
chat-api-push@system.gserviceaccount.com
。 - Meet からの予定を受信するには、
meet-api-event-push@system.gserviceaccount.com
。
- Chat からイベントを受信するには、
トピックの権限が更新されるまで数分かかることがあります。
トピックに Pub/Sub サブスクリプションを作成します。
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME
次のように置き換えます。
SUBSCRIPTION_NAME
: サブスクリプションの名前。workspace-events-subscription
など。TOPIC_NAME
: 作成したトピックの名前 確認します。
Google Workspace リソースに登録する
このセクションでは、GCP で提供される Google Workspace リソースを いずれかを選択できます
ターゲット リソースを選択して特定する
Google Workspace サブスクリプションの場合、ターゲット リソースは
イベントをモニタリングする Google Workspace リソース。ターゲット
リソースは、サブスクリプションの targetResource
フィールドで表されます。
完全なリソース名です。たとえば、サブスクリプションで
Google Chat スペース(spaces/AAAABBBBBBB
)の場合、targetResource
の値は
//chat.googleapis.com/spaces/AAAABBBBBBB
。
サブスクリプションを作成する前に、次のセクションを参照し、 ターゲット リソースを識別してフォーマットします。
Chat のターゲット リソースを特定する
ターゲット リソース | 形式 | 制限事項 |
---|---|---|
スペース |
ここで、SPACE はファイルの ID です。
<ph type="x-smartling-placeholder"></ph>
Chat API リソースの |
サブスクリプションを承認する Chat ユーザーは、 Google Workspace または Google Chat を通じてスペースのメンバーになる 。 |
1 ユーザーのすべてのスペース |
|
サブスクリプションは、ユーザーが参加しているスペースのイベントのみを受信します。 Google Workspace または Google アカウントからメンバーに登録できます。 |
ユーザー |
ここで、USER はファイルの ID です。
<ph type="x-smartling-placeholder"></ph>
Chat API リソースの |
サブスクリプションが受信するのは、 サブスクリプションを承認しました。ユーザーは次の場所で定期購入を承認できません: 委任することもできます。 |
Meet のターゲット リソースを特定する
ターゲット リソース | 形式 | 制限事項(該当する場合) |
---|---|---|
会議スペース | //meet.googleapis.com/spaces/SPACE
ここで、SPACE はファイルの ID です。
<ph type="x-smartling-placeholder"></ph>
リソース名です。 |
|
ユーザー | //cloudidentity.googleapis.com/users/USER
ここで、USER はファイルの ID です。
<ph type="x-smartling-placeholder"></ph>
|
サブスクリプションは、会議が開かれた場所に関するイベントを受信します。 user は次のいずれかです。
|
Google Workspace サブスクリプションを作成する
サブスクリプションを作成するには、Google Workspace Events API の
subscriptions.create()
メソッドを使用して、
Subscription
リソースです。次のフィールドを指定します。
targetResource
: で特定した Google Workspace 前のセクション。完全なリソース名の形式で指定します。eventTypes
: 受信する 1 つ以上のイベントタイプの配列 表示されます。たとえば、アプリが新しいメッセージについてのみ知る必要がある場合、 そのアプリはイベントにサブスクライブするだけで済みます。 概要を確認できます。notificationEndpoint
: アプリケーションのエンドポイントが Google Workspace サブスクリプションがイベントを配信。 前のセクションで作成した Pub/Sub トピック。payloadOptions
: 含めるリソースデータの量を指定するオプション 必要があります。この構成は、環境変数、 。詳しくは、イベント 。
Google Workspace サブスクリプションを作成するには:
Apps Script
Apps Script プロジェクトで、新しいスクリプト ファイルを作成する
createSubscription
という名前を付け、次のコードを追加します。function createSubscription() { // The Google Workspace resource to monitor for events. const targetResource = 'TARGET_RESOURCE'; // The types of events to receive. const eventTypes = [EVENT_TYPES]; // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. const pubsubTopic = 'TOPIC_NAME'; // Whether to include resource data or not. const resourceData = RESOURCE_DATA; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.create({ targetResource: targetResource, eventTypes: eventTypes, notificationEndpoint: { pubsubTopic: pubsubTopic, }, payloadOptions: { includeResource: resourceData } }); console.log(response); }
次のように置き換えます。
TARGET_RESOURCE
: Google Workspace リソース 完全なリソース名の形式で指定します。対象 スペース ID を使用して Google Chat スペースをAAAABBBB
、//chat.googleapis.com/spaces/AAAABBBB
を使用します。EVENT_TYPES
: 1 つ以上のイベントタイプ リソースにサブスクライブするものを指定します。表示形式 文字列の配列('google.workspace.chat.message.v1.created'
など)。TOPIC_NAME
: 受信する Pub/Sub トピックの完全な名前 Cloud プロジェクトで作成したものが含まれます。形式projects/PROJECT_ID/topics/TOPIC_ID
。RESOURCE_DATA
: 読み取り状態を待機するかどうかを サブスクリプションには、ペイロードにリソースデータが含まれます。True
: すべてのリソースデータが含まれます。表示するフィールドを制限するには、fieldMask
を追加 変更されたリソースについて少なくとも 1 つのフィールドを指定します。単独 Chat リソース サポート サブスクリプションの 使用します。False
: リソースデータは除外されます。
Google Workspace サブスクリプションを作成するには、次の関数を実行します。 Apps Script プロジェクトの
createSubscription
。
Python
作業ディレクトリに、
create_subscription.py
という名前のファイルを作成します。 次のコードを追加します。"""Create subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES) CREDENTIALS = flow.run_local_server() # The Google Workspace resource to monitor for events. TARGET_RESOURCE = 'TARGET_RESOURCE' # The types of events to receive. EVENT_TYPES = [EVENT_TYPES] # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. TOPIC = 'TOPIC_NAME' # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) BODY = { 'target_resource': TARGET_RESOURCE, 'event_types': EVENT_TYPES, 'notification_endpoint': {'pubsub_topic': TOPIC}, 'payload_options': {'include_resource': RESOURCE_DATA}, } response = service.subscriptions().create(body=BODY).execute() print(response)
次のように置き換えます。
SCOPES
: 各イベントタイプをサポートする 1 つ以上の OAuth スコープ 割り当てられています文字列の配列としてフォーマットされます。複数のスコープを一覧表示するには、カンマで区切ります。 例:'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
TARGET_RESOURCE
: Google Workspace リソース 完全なリソース名の形式で指定します。対象 スペース ID を使用して Google Chat スペースをAAAABBBB
、//chat.googleapis.com/spaces/AAAABBBB
を使用します。EVENT_TYPES
: 1 つ以上のイベントタイプ リソースにサブスクライブするものを指定します。表示形式 文字列の配列('google.workspace.chat.message.v1.created'
など)。TOPIC_NAME
: 受信する Pub/Sub トピックの完全な名前 Cloud プロジェクトで作成したものが含まれます。形式projects/PROJECT_ID/topics/TOPIC_ID
。RESOURCE_DATA
: 読み取り状態を待機するかどうかを サブスクリプションには、ペイロードにリソースデータが含まれます。True
: すべてのリソースデータが含まれます。表示するフィールドを制限するには、fieldMask
を追加 変更されたリソースについて少なくとも 1 つのフィールドを指定します。単独 Chat リソース サポート サブスクリプションの 使用します。False
: リソースデータは除外されます。
Google Workspace サブスクリプションを作成するには、 ターミナルに次のコマンドを入力します。
python3 create_subscription.py
Google Workspace Events API は、完了した長時間実行
オペレーションが
作成した Subscription
リソースのインスタンス。
Google Workspace サブスクリプションをテストする
Google Workspace イベントを受信しているかどうかをテストするには、 Pub/Sub サブスクリプションにメッセージを pull します。
Google Workspace サブスクリプションをテストするには:
Google Cloud コンソール
アプリケーションのターゲット リソースで 1 つ以上のタイプのイベントを Google Workspace サブスクリプション。たとえば、 スペースにメッセージを投稿できます。
Google Cloud コンソールで、[Pub/Sub] ページに移動します。
アプリの Cloud プロジェクトが選択されていることを確認します。
[Pub/Sub] メニューで、[サブスクリプション] をクリックします。
テーブルで、トピックの Pub/Sub サブスクリプションを見つけて、 サブスクリプション名。
[メッセージ] タブをクリックします。
[Pull] をクリックします。イベントが生成されるまで数分かかることがあります。 Pub/Sub メッセージ。
gcloud
アプリケーションのターゲット リソースで 1 つ以上のタイプのイベントを Google Workspace サブスクリプション。たとえば、 スペースにメッセージを投稿できます。
次のコマンドを実行します。
gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack
次のように置き換えます。
PUBSUB_SUBSCRIPTION_NAME
: 名前のフルネーム Pub/Sub サブスクリプションの形式projects/SUBSCRIPTION_ID/subscriptions/SUBSCRIPTION_ID
。MESSAGE_COUNT
: pull する Pub/Sub メッセージの最大数。
イベントで Pub/Sub が生成されるまでに数分かかることがあります。 表示されます。
トリガーした Google Workspace イベントごとに、メッセージが イベントを含む Pub/Sub サブスクリプションに配信されます。詳しくは、 イベントを Google Cloud Pub/Sub メッセージとして受信する。
アプリがイベントを受信する方法を構成する
作成した Pub/Sub サブスクリプションは pull ベースです。テストした後 配信タイプを更新することで、Google Cloud で イベントを受信します。たとえば、Compute Engine インスタンスで push 配信タイプへのサブスクリプションの追加。これにより、アプリがイベントを受信できるようになります。 アプリのエンドポイントに直接送信されます。
Pub/Sub サブスクリプションの構成について詳しくは、Pub/Sub サブスクリプションに関するページ ドキュメントをご覧ください。