こんにちは、おかちゃんせんせいです!
現在、仕事で要望があり、Googleフォーム・Googleスプレッドシート・GoogleカレンダーをそれぞれGASで連携するテスト検証をしています。
そこで、初めて見るエラーに遭遇したので、備忘も兼ねて共有いたします。
問題のエラーは下記になります。
Exception: Invalid argument: [Ljava.lang.Object;@7b1bacfb
無効な引数のエラーとして、
[Ljava.lang.Object;@7b1bacfb
とコンソールに表示されていましたが、
そもそも[Ljava.lang.Object;の意味がわからず焦ってしまいました。
しかし、よくよく焦らずに調べてみると、
メソッドの戻り値またはパラメタがオブジェクトの配列型の場合[Ljava.lang.Object;と表示される
とのこと。
そこで、エラーが発生している箇所をチェックしてみると、
どうやらカレンダーをcreateEventメソッドで新規作成する引数で問題が起きていることがわかりました。
event = calendar.createEvent(eventTitle, startDate, endDate, options);
第1引数であるイベント名は文字列。
第2、3引数である開始時刻・終了時刻は日付。
それぞれデバッグで確認する限りでは型に問題はなかったため、
イベントの詳細を指定できる第4引数optionsに問題があることが特定できました。
さらにoptionsの中身をチェックしてみて、怪しいところはguestsオプションくらいだと思い確認してみたところ、guestsにセットした変数managerの型がString型ではなく、配列になっていることが判明。
guestsオプションの型はString型なのに、(一次元)配列をセットしてしまっていたのでエラーになってしまっていたようです。
// オプション
let options = {
description:"TEST",
location:location,
guests:manager,
sendInvites:true
}
なので、managerにセットする値を配列から、カンマ区切りの文字列にするためにjoinメソッドを使ってからguestsオプションにセットしてみたところ、無事にエラーを解消できました!
やっぱりエラーが出たからといって焦ってはいけませんねw
この情報が何かお役に立てば幸いです!
最後まで読んでいただき、ありがとうございました!