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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

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

Q&A

解決済

1回答

2052閲覧

GASでcreateEventのパラメータguestsに、変数に入れた複数のメールアドレスをセットしたい

T.Nakagawa

総合スコア8

Google Apps Script

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

0グッド

0クリップ

投稿2018/04/09 12:54

前提・実現したいこと

GoogleAppsScriptsで予約管理システムを作っています。

Googleカレンダーに予定を作成するときに、「createEvent」を使って予定を作成しています。

この時、createEventにパラメータguestsに、変数に入れた複数のメールアドレスを設定したいのですが、うまく行きません。

何か方法があればご教授いただきたいです。

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

エラーメッセージ 無効な引数: to(行 18、ファイル「コード」)表示しない

該当のソースコード

以下のコードでは「A」を固定していますが、Aよって分岐が発生しbccに入るメールアドレスが変わります。

Google

1 2 function myFunction() { 3 var bcc; // Bcc: 4   var to = "yyyy@gmail.com"; // To: (入力者のアドレスが自動で入ります) 5 var A = 0; 6 7 if(A == 0){ 8       bcc = "xxxx@y-mobile.ne.jp"; 9    }else{ 10       bcc = "xxxx@gmail.com"; 11    } 12 13 var start1 = "2018/04/09 12:00:00"; 14 var end = "2018/04/09 13:00:00"; 15 16 id="xxxx@group.calendar.google.com";//予約確認カレンダー 17 nt = CalendarApp.getCalendarById(id) 18 nt.createEvent("予定", new Date(start1), new Date(end),{guests:"to,bcc"}); 19} 20 21

試したこと

var guest_list = "to,bcc";

var guest_list = [to,bcc];

など、別の変数に入れ直して見ましたが、あまり意味がなかったです。

補足情報(FW/ツールのバージョンなど)

guestsにメールアドレスをカンマ区切りで入力すると、うまくいくことは確認しました。

guests:"yyyy@gmail.com","xxxx@y-mobile.ne.jp"

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

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

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

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

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

guest

回答1

0

ベストアンサー

リファレンスによれば、パラメータ、optionsのguestsプロパティの型はString(文字列)です。
なので、{guests:to,bcc}もしくは{guests:to+','+bcc}とすれば動くと思います。

ちなみに3人以上の場合、以下のように配列にセットし、toString()で文字列にすれば良いと思います。

javascript

1/*省略*/ 2var guest_list = [to,bcc,{3人目以降のアドレス・・・}].toString(); 3nt.createEvent("予定", new Date(start1), new Date(end),{guests:guest_list});

動作確認等はしておりませんので、参考まで。

[補足]
あとでよくよく見れば、{guests:to,bcc}とした場合、bccが未定義のプロパティとして解釈されるため、文法エラーですね。

[参考]
Google Apps Script Class Calendar > createEvent(title, startTime, endTime, options)

投稿2018/04/09 14:28

編集2018/04/10 00:24
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

T.Nakagawa

2018/04/10 00:53

早々の回答ありがとうございます。 {guests:to+','+bcc} の記述で、動作しました。また、 var guest_list = [to,bcc,{3人目以降のアドレス・・・}].toString(); の記述でも、動作しました。 ありがとうございます!助かりました^^
退会済みユーザー

退会済みユーザー

2018/04/10 00:55

何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問