我正在嘗試為在谷歌表單上提交休假請求的用戶創建一個谷歌日歷事件。當這個表單回應被記錄在谷歌表格中時,我得到了用戶的電子郵件 ID,并想為他們創建一個日歷事件。腳本在我使用我的電子郵件 ID 時創建事件,但當我嘗試對其他用戶執行相同操作時它給出 null。
這是示例代碼:
CalendarApp.getCalendarById(email)
.createAllDayEvent(
'OOO - Out Of Office',
startDate,
endDate,
{
description: message,
sendInvites: true,
});
我收到此錯誤:無法讀取 null 的屬性“createAllDayEvent”
我用谷歌搜索了這個錯誤,有人建議訂閱用戶的日歷可以解決這個問題。我使用以下代碼段來反駁:
var calendar = CalendarApp.getCalendarById(email);
if(calendar == null){
//user may not have access, auto-subscribe them.
calendar = CalendarApp.subscribeToCalendar(email,{hidden:true,selected:false});
}
但它顯示一個新的錯誤說明:日歷或日歷事件不存在,它已被洗掉,或者用戶無權訪問它
任何想法我們如何使它作業。謝謝你。
uj5u.com熱心網友回復:
您不能在表單回應上執行此操作(至少不可靠)。
要在其他用戶的日歷中創建事件,他們必須更改日歷設定以供公眾使用,并且訪問權限必須設定為“更改事件”。可以在此幫助頁面上閱讀有關此的更多資訊
如果這些設定不是由用戶設定的,那么為他們創建事件就不走運了。在這種情況下,您有兩種選擇:
- 創建一個 OAuth2 應用程式,用戶對其進行身份驗證以允許代表他們創建日歷事件(盡管這仍然不能在表單提交時完成)
- 在您的日歷上創建一個活動,并使用他們的電子郵件地址向他們發送邀請。您可以授予他們對活動的編輯權限,以便他們可以控制它,就像它在他們的日歷中一樣,但在這種情況下,他們必須接受活動邀請。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/410687.html
標籤:
