2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Google Chat】メールアドレスの一覧から、Botで個人宛にメンションするためのユーザーIDを一度に取得する方法

Last updated at Posted at 2025-03-26

はじめに

Google Chat の Bot から個人宛にメンションを送るには、ユーザーIDを指定する必要があります。
しかし、このユーザーIDはGoogle ChatのUI上では確認できず、取得するにはAPIを利用する必要があり、簡単には確認できません。
本記事では、Google Workspace の Admin SDK Directory API を活用して、Google スプレッドシート上のメールアドレス一覧を基にユーザーIDを一度に取得する方法を解説します。

この記事でわかる・できること

  • Admin SDK Directory API を使ったユーザーIDの取得方法がわかる
  • ユーザーIDを一度に複数取得できる

この記事の対象者

  • Google Chat の Bot を開発している人
  • Bot から個人宛にメンションを送りたい人

動作環境・使用するツールや言語

  • Google スプレッドシート
  • Google Apps Script (GAS)
  • Google Workspace Admin SDK Directory API

1. Google Chat のユーザーIDとは?

Google Chat の Bot から個人宛にメンションを送るには、送信メッセージに <users/{userId}> のような文字列を含める必要があります。

例)<users/123456789012345678901>

このIDはGoogle ChatのUI上では確認できず、APIを利用して取得する必要があります。

2. Admin SDK Directory API を使ったユーザーIDの取得方法

ユーザーIDの取得方法は、こちらのサイトを参考にさせていただきました。

3. メールアドレスの一覧からユーザーIDを一度に取得する方法

3.1 Google スプレッドシート上にメールアドレス一覧を用意する

Google スプレッドシート上に以下のような形式のメールアドレス一覧を作成してください。

A B
1 メールアドレス ユーザーID
2 suguru@example.com
3 mayumi@example.com
4 tatsunori@example.com

3.2 Google スプレッドシートからGoogle Apps Script (GAS)を作成する

メールアドレスのスプレッドシートのメニューから「拡張機能 > App Script」を開いた後、コードエディタに下記のコードを入力してください。
{メールアドレス一覧のシート名}の部分は、作成したシート名に変更すること。

function getUserId() {
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = spreadsheet.getSheetByName('{メールアドレス一覧のシート名}');

  // 1行目は表見出しなので、2行目から処理対象とする
  for (let i = 2; i <= sheet.getLastRow(); i++) {
    let userId = sheet.getRange(i, 2).getValue() // B列のユーザーIDを取得

    // 既にユーザーIDが入力されていた場合は、ユーザーIDを取得しない
    if (!userId) {
      let email = sheet.getRange(i, 1).getValue(); // A列のメールアドレスを取得
      userId = AdminDirectory.Users.get(email, { viewType: 'domain_public' }).id;
      sheet.getRange(i, 2).setValue(userId); // 取得したユーザーIDでB列を更新
    }
  }
}

3.3 サービスにAdminDirectoryを追加する

以下の手順で、GASのサービスにAdminDirectoryを追加してください。

①GASのコードエディタの左側にあるメニューの「サービス」の「+」ボタンを押す。

image.png

➁ダイアログが表示されるので、「Admin SDK API」を選択して、「追加」ボタンを押す。

image.png

③サービスに「AdminDirectory」が表示されて、利用可能になる。

image.png

3.4 GASを実行してユーザーIDを取得する

エディタ上の実行ボタンを押すと、取得したユーザーIDがメールアドレス一覧のB列に表示されます。

A B
1 メールアドレス ユーザーID
2 suguru@example.com 123456789012345678901
3 mayumi@example.com 123456789012345678902
4 tatsunori@example.com 123456789012345678903

おわりに

Google Chat のユーザーIDは UI では確認できず、API を使って取得する必要があります。
本記事では Admin SDK Directory API を用いて、メールアドレスの一覧からユーザーIDをまとめて一度に取得する方法を解説しました。
Bot の開発やユーザー管理に活用してください!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?