高度なチャット サービスを使用すると、Apps Script で Google Chat API を使用できます。この API を使用すると、スクリプトで Chat スペースの検索、作成、変更、スペースへのメンバーの追加または削除、テキスト、カード、添付ファイル、リアクションを含むメッセージの読み取りや投稿を行うことができます。
前提条件
- Google Cloud コンソールの Chat API 構成ページで構成された Apps Script Google Chat アプリ。アプリの Apps Script プロジェクトでは、Apps Script プロジェクト用に自動的に作成されるデフォルトのプロジェクトではなく、標準の Google Cloud プロジェクトを使用する必要があります。互換性のある Google Chat アプリを作成するには、Apps Script を使用して Google Chat アプリを作成するをご覧ください。
- Chat アプリ用に構成されている認証。ユーザーの代わりに操作を実行するには、ユーザー認証が必要です。Chat アプリとしてアクションを実行するには、サービス アカウントによるアプリ認証が必要です。Chat API メソッドがサポートする認証形式を確認するには、Google Chat API 呼び出しに必要な認証の種類をご覧ください。
リファレンス
このサービスの詳細については、Chat API のリファレンス ドキュメントをご覧ください。Apps Script のすべての拡張サービスと同様に、Chat サービスでも公開 API と同じオブジェクト、メソッド、パラメータが使用されます。
サンプルコード
これらのサンプルは、拡張サービスを使用して一般的な Google Chat API アクションを実行する方法を示しています。
ユーザーの認証情報を含むメッセージを投稿してください
次の例は、ユーザーに代わって Chat スペースにメッセージを投稿する方法を示しています。
chat.messages.create
承認スコープを Apps Script プロジェクトのappsscript.json
ファイルに追加します。"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.create" ]
次のような関数を Apps Script プロジェクトのコードに追加します。
アプリの認証情報を含むメッセージを投稿
次の例は、アプリに代わって Chat スペースにメッセージを送信する方法を示しています。サービス アカウントで高度な Chat サービスを使用する場合、appsscript.json
で承認スコープを指定する必要はありません。サービス アカウントを使用した認証の詳細については、Google Chat アプリとして認証するをご覧ください。
スペースを取得
次の例は、Chat スペースに関する情報を取得する方法を示しています。
chat.spaces.readonly
承認スコープを Apps Script プロジェクトのappsscript.json
ファイルに追加します。"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.readonly" ]
次のような関数を Apps Script プロジェクトのコードに追加します。
スペースを作成する
次の例は、Chat スペースの作成方法を示しています。
chat.spaces.create
承認スコープを Apps Script プロジェクトのappsscript.json
ファイルに追加します。"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.create" ]
次のような関数を Apps Script プロジェクトのコードに追加します。
リストのメンバー
次の例は、Chat スペースのすべてのメンバーを一覧表示する方法を示しています。
chat.memberships.readonly
承認スコープを Apps Script プロジェクトのappsscript.json
ファイルに追加します。"oauthScopes": [ "https://www.googleapis.com/auth/chat.memberships.readonly" ]
次のような関数を Apps Script プロジェクトのコードに追加します。
トラブルシューティング
エラー メッセージ Some requested scopes cannot be shown
とともに Error 400: invalid_scope
が表示された場合は、Apps Script プロジェクトの appsscript.json
ファイルで認証スコープが指定されていないことを意味します。ほとんどの場合、Apps Script はスクリプトに必要なスコープを自動的に決定しますが、Chat 拡張サービスを使用する場合は、スクリプトで使用する承認スコープを Apps Script プロジェクトのマニフェスト ファイルに手動で追加する必要があります。明示的なスコープの設定をご覧ください。
エラーを解決するには、Apps Script プロジェクトの appsscript.json
ファイルに oauthScopes
配列の一部として適切な認証スコープを追加します。たとえば、spaces.messages.create
メソッドを呼び出すには、以下を追加します。
"oauthScopes": [
"https://www.googleapis.com/auth/chat.messages.create"
]
制限事項と考慮事項
高度なチャット サービスでは、以下はサポートされていません。
- Chat API メソッド
media.download
。 - デベロッパー プレビューで利用可能な Chat API メソッド
メッセージの添付ファイルをダウンロードするか、デベロッパー プレビュー メソッドを呼び出すには、代わりに UrlFetchApp
を使用します。