Google Apps Scriptを使ってGoogleチャットのスペースに参加しているメンバーに一括で予定をカレンダーに登録するプログラムを作成したい場合、メンバーのメールアドレスを取得する方法やその活用法について解説します。この方法では、Chat.Spaces.Members.list メソッドで取得したメンバーIDから実際のメールアドレスを取得し、Googleカレンダーに予定を登録する手順を説明します。
1. Chat.Spaces.Members.listで取得できる情報
GoogleチャットAPIを利用して、Chat.Spaces.Members.listメソッドを使うことで、参加メンバーの情報を取得できます。しかし、このメソッドで返される情報には、ユーザーID(例:users/{数値21桁のID})が含まれており、メールアドレスなどの詳細情報は含まれていません。
したがって、まずはこのIDを使用して、別のAPIを利用してメールアドレスなどの詳細情報を取得する必要があります。
2. メンバーのメールアドレスを取得する方法
ユーザーID(21桁のID)からメールアドレスを取得するには、Google Workspaceの管理者権限を持っている場合、Google Admin SDKを利用して、ユーザー情報を取得できます。具体的には、Directory APIを使用して、ユーザーの詳細情報を取得し、メールアドレスを確認できます。
function getUserEmail(userId) {
var user = AdminDirectory.Users.get(userId);
return user.primaryEmail;
}
このようにして、ユーザーIDからメールアドレスを取得できます。
3. Googleカレンダーに予定を一括登録する方法
メールアドレスを取得したら、次にGoogleカレンダーAPIを使用して、参加メンバーのカレンダーに予定を一括で登録することができます。以下は、Googleカレンダーに予定を追加するサンプルコードです。
function addEventToCalendar(email, eventTitle, eventDescription, startDate, endDate) {
var calendar = CalendarApp.getCalendarById(email);
calendar.createEvent(eventTitle,
new Date(startDate),
new Date(endDate),
{description: eventDescription}
);
}
このコードでは、指定したユーザーのカレンダーにイベントを追加することができます。
4. メンバーに予定を一括登録するための全体的な流れ
1. GoogleチャットAPIを使用してメンバーのIDを取得する
2. Google Admin SDKを使用して、ユーザーIDからメールアドレスを取得する
3. GoogleカレンダーAPIを使って、各メンバーのカレンダーに予定を追加する
5. まとめ
Google Apps Scriptを使って、Googleチャットのメンバー情報を取得し、カレンダーに予定を一括で登録する方法について解説しました。メールアドレスの取得には少し工夫が必要ですが、Google Admin SDKを活用すれば問題なく実現できます。ぜひ、実際のプログラムで試してみてください。


コメント