質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google カレンダー

Google カレンダーは、Google社が提供する無料のスケジュール管理ツールです。パソコンやスマートフォン、タブレットなどからアクセスし、スケジュールの追加・変更が可能。Googleアカウントがあれば誰でも使用できます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

1回答

2626閲覧

GASで、Googleカレンダーの出席情報を、メーリングリスト内のメンバーも含めて把握したい

hamada.shinsuke

総合スコア0

Google カレンダー

Google カレンダーは、Google社が提供する無料のスケジュール管理ツールです。パソコンやスマートフォン、タブレットなどからアクセスし、スケジュールの追加・変更が可能。Googleアカウントがあれば誰でも使用できます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/04/16 10:43

前提

題名のことを実現するために、

JavaScript

1var guests = target_event.getGuestList(true) 2 3function (guests, target_status) { 4 var array = []; 5 for (var j in guests) { 6 if (guests[j].getGuestStatus() == target_status) { 7 var name = guests[j].getName() 8 var email = guests[j].getEmail() 9 array.push([email, attendance]); 10 } 11 } 12} 13

と記入しました。

変数については、

  • 「target_event」には、参加を確認したいGoogleカレンダーのイベントを格納してあります。
  • 「target_status」は、出席者を調べるために「YES」が入っています。

for文で、「array」に出席者の名前とメールアドレスを追加してきました

この状態で
console.log(array)にて、guestsの中身を確認を行いました。

発生している問題・エラーメッセージ

個人メールアドレスの出席者は出せたのですが、
メーリングリストは一括で表示され、全員がYES(参加)でない限りは、NO(不参加)と返却されました。

今回は、
そのメーリングリストで招待されているメンバーの出席状況を個別に見る方法をお教えいただきたいです。

試したこと

  • 「guests」に用意された要素の個数の確認

個別招待3人 + メーリングリスト招待1つ(中に3人登録)でしたが、
4つ箱が用意されており、そもそもこの時点でメーリングリストでくくって処理されていそう。

  • Googleのリファレンスの確認

メーリングリストの中身も含めて取れそうな「getGuestList()」ようなものは、なさそう。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

とりあえず、以下のようなコードではどうでしょうか。

GAS

1 var eventguests =target_event.getGuestList(true); 2 for (var i in eventguests){ 3 eventguest=eventguests[i]; 4 5 if (eventguest.getEmail().match(/@googlegroups.com$/)){ 6 var users = GroupsApp.getGroupByEmail(eventguest.getEmail()).getUsers(); 7 for (var j in users){ 8 user=users[j]; 9 console.log(user.getEmail()); 10 console.log(target_event.getGuestByEmail(user.getEmail()).getStatus()); 11 } 12 } else { 13 console.log(eventguest.getEmail()); 14 console.log(eventguest.getStatus()); 15 } 16 }

私の所で確認した所、メーリングリストの中のメンバーもgetGuestListで取れたので
このコードでは駄目かもしれませんが…

投稿2021/05/09 23:26

xail2222

総合スコア1508

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問