Node.js クイックスタート

Google Chat API にリクエストを行う Node.js コマンドライン アプリケーションを作成します。

クイックスタートでは、Google Workspace API を呼び出すアプリを設定して実行する方法について説明します。このクイックスタートでは、テスト環境に適した簡素化された認証方法を使用します。本番環境では、アプリに適したアクセス認証情報を選択する前に、 認証と認可 について学習することをおすすめします。

このクイックスタートでは、Google Workspace が推奨する API クライアント ライブラリを使用して、認証と認可フローの詳細を処理します。

目標

  • 環境をセットアップする。
  • クライアント ライブラリをインストールする。
  • サンプルをセットアップする。
  • サンプルを実行する。

前提条件

このクイックスタートを実行するには、次の前提条件を満たす必要があります。

  • Google Workspace にアクセスできる Business または Enterprise アカウントがある。

環境をセットアップする

このクイックスタートを完了するには、環境をセットアップします。

API を有効にする

Google API を使用する前に、Google Cloud プロジェクトで API を有効にする必要があります。 1 つの Google Cloud プロジェクトで 1 つ以上の API を有効にできます。

このクイックスタートを完了するために新しい Google Cloud プロジェクトを使用している場合は、OAuth 同意画面を構成します。Cloud プロジェクトでこの手順をすでに完了している場合は、次のセクションに進んでください。

  1. Google API コンソールで、メニュー アイコン > [Google Auth Platform] > [ブランディング] に移動します。

    [ブランディング] に移動

  2. Google Auth Platform をすでに構成している場合は、[ブランディング]、[対象]、[データアクセス] で次の OAuth 同意画面の設定を構成できます。[**Google Auth Platform はまだ構成されていません**] というメッセージが表示されたら、[**スタートガイド**] をクリックします。
    1. [アプリ情報] の [アプリ名] に、アプリの名前を入力します。
    2. [**ユーザー サポートメール**] で、ユーザーが同意について問い合わせる際に使用するサポートのメールアドレスを選択します。
    3. [続行] をクリックします。
    4. [対象] で [内部] を選択します。
    5. [続行] をクリックします。
    6. [連絡先情報] で、プロジェクトに対する変更の通知を受け取る [メールアドレス] を入力します。
    7. [続行] をクリックします。
    8. [完了] で、Google API サービスのユーザーデータに関するポリシーを確認し、同意する場合は [Google API サービス: ユーザーデータに関するポリシーに同意します] を選択します。
    9. [続行] をクリックします。
    10. [作成] をクリックします。
  3. 現時点では、スコープの追加はスキップできます。 今後、 Google Workspace 組織外で使用するアプリを作成する場合は、[ユーザータイプ] を [外部] に変更する必要があります。次に、アプリに必要な認可スコープを追加します。詳細については、 OAuth 同意画面を構成するのガイドをご覧ください。

デスクトップ アプリケーションの認証情報を認可する

エンドユーザーを認証してアプリ内のユーザーデータにアクセスするには、1 つ以上の OAuth 2.0 クライアント ID を作成する必要があります。クライアント ID は、Google の OAuth サーバーで個々のアプリを識別するために使用します。アプリが複数のプラットフォームで実行される場合は、プラットフォームごとに個別のクライアント ID を作成する必要があります。
  1. Google Cloud コンソールで、メニュー アイコン > [Google Auth Platform] > [クライアント] に移動します。

    [クライアント] に移動

  2. [クライアントの作成] をクリックします。
  3. [アプリケーション タイプ] [>] [デスクトップ アプリ] をクリックします。
  4. [名前] フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
  5. [作成] をクリックします。

    新しく作成した認証情報が [OAuth 2.0 クライアント ID] に表示されます。

  6. ダウンロードした JSON ファイルを credentials.json として保存し、 ファイルを作業ディレクトリに移動します。

Google Chat アプリを構成する

GetSpaceListMessages

Google Chat API の呼び出しを作成、更新、削除するには、Google Chat アプリを構成する必要があります。書き込みリクエストの場合、Google Chat は次の情報を使用して、UI で Google Chat アプリを属性付けします。

  1. Google API Console で、Chat API の [構成] ページに移動します。

    Chat API の [構成] ページに移動

  2. [アプリケーション情報] に次の情報を入力します。

    1. [アプリ名] フィールドに「Chat API quickstart app」と入力します。
    2. [アバター URL] フィールドに「https://developers.google.com/chat/images/quickstart-app-avatar.png」と入力します。
    3. [説明] フィールドに「Quickstart for calling the Chat API」と入力します。
  3. [インタラクティブ機能] で、[インタラクティブ機能を有効にする] 切り替えボタンをクリックしてオフの位置に切り替え、 Chat アプリのインタラクティブ機能を無効にします。

  4. [保存] をクリックします。

クライアント ライブラリをインストールする

  • npm を使用してライブラリをインストールします。

    npm install @google-apps/chat @google-cloud/local-auth@2.1.0 --save
    

サンプルをセットアップする

  1. 作業ディレクトリに index.js という名前のファイルを作成します。

  2. ファイルに次のコードを貼り付けます。

    chat/quickstart/index.js
    import path from 'node:path';
    import process from 'node:process';
    import {ChatServiceClient} from '@google-apps/chat';
    import {authenticate} from '@google-cloud/local-auth';
    
    // The scope for reading Chat spaces.
    const SCOPES = ['https://www.googleapis.com/auth/chat.spaces.readonly'];
    // The path to the credentials file.
    const CREDENTIALS_PATH = path.join(process.cwd(), 'credentials.json');
    
    /**
     * Lists the spaces that the user is a member of.
     */
    async function listSpaces() {
      // Authenticate with Google and get an authorized client.
      const authClient = await authenticate({
        scopes: SCOPES,
        keyfilePath: CREDENTIALS_PATH,
      });
    
      // Create a new Chat API client.
      const chatClient = new ChatServiceClient({
        authClient,
        scopes: SCOPES,
      });
    
      // The request to list spaces.
      const request = {
        // Filter spaces by type. In this case, we are only interested in "SPACE" type.
        filter: 'space_type = "SPACE"',
      };
    
      // Make the API request.
      const pageResult = chatClient.listSpacesAsync(request);
    
      // Process the response.
      // The `pageResult` is an async iterable that will yield each space.
      for await (const response of pageResult) {
        console.log(response);
      }
    }
    
    await listSpaces();

サンプルを実行する

  1. 作業ディレクトリでサンプルを実行します。

    node .
    
  1. サンプルを初めて実行すると、アクセス権の承認を求められます。
    1. Google アカウントにまだログインしていない場合は、ログインを求められたらログインします。複数のアカウントにログインしている場合は、認可に使用するアカウントを 1 つ選択します。
    2. [Accept] をクリックします。

    Node.js アプリケーションが実行され、Google Chat API が呼び出されます。

    認可情報はファイル システムに保存されるため、次回サンプル コードを実行するときに認可を求められることはありません。

次のステップ