Скрипт Google Apps, GetStartTime/TendTimeJavascript

Форум по Javascript
Ответить
Anonymous
 Скрипт Google Apps, GetStartTime/TendTime

Сообщение Anonymous »

Я сейчас работаю над простой внутренней надстройкой для календаря Google. Когда мы нажмем событие, мы выберем опцию из выпадения и нажмите кнопку. Когда это произойдет, возьмите выбранный элемент с соответствующими атрибутами (работающими) и событиями начинаются и в конце времени. Я не могу из -за любви ко мне получить время, чтобы работать. Что мне не хватает? 1337 < /li>
23 апреля, 2025, 8:40:24 Ум./**
* Callback for opening a calendar event.
* @param {Object} e The event object for the open callback.
* @return {CardService.Card} The card to show to the user.
*/
function onCalendarEventOpen(e) {
var cardBuilder = CardService.newCardBuilder();
var customerData = getCustomersFromApi();

var selectionInput = CardService.newSelectionInput()
.setType(CardService.SelectionInputType.DROPDOWN)
.setFieldName("dropdown_field")
.setTitle("Select a customer");

customerData.forEach(function(customer) {
selectionInput.addItem(customer.name, customer.id, false);
});

var startTime = "";
var endTime = "";

// SAFELY extract start and end time strings from calendar event
if (e && e.calendarEvent) {
var event = e.calendarEvent;
if (event.getStartTime && event.getEndTime) {
startTime = event.getStartTime().toISOString();
endTime = event.getEndTime().toISOString();
}
}

var action = CardService.newAction()
.setFunctionName("onTidsraporteraClick")
.setParameters({
startTime: startTime,
endTime: endTime
});

var button = CardService.newTextButton()
.setText("Tidsraportera")
.setOnClickAction(action);

var section = CardService.newCardSection()
.addWidget(selectionInput)
.addWidget(button);

return cardBuilder.addSection(section).build();
}

/**
* Callback for when the "Tidsraportera" button is clicked.
* Logs the selected customer and the calendar event start/end times.
* @param {Object} e The event object containing form inputs and parameters.
* @return {CardService.ActionResponse}
*/
function onTidsraporteraClick(e) {
try {
var selectedCustomerId = e.commonEventObject.formInputs["dropdown_field"].stringInputs.value[0];
Logger.log("Selected customer ID: " + selectedCustomerId);

var startTime = new Date(e.parameters.startTime);
var endTime = new Date(e.parameters.endTime);

Logger.log("Event start time: " + startTime);
Logger.log("Event end time: " + endTime);
} catch (error) {
Logger.log("Error in onTidsraporteraClick: " + error);
}

return CardService.newActionResponseBuilder()
.setNotification(CardService.newNotification()
.setText("Customer: " + selectedCustomerId + "\nStart: " + startTime + "\nEnd: " + endTime))
.build();
}
< /code>
Это часть appscript.json: < /p>
{
"timeZone": "Europe/Berlin",
"runtimeVersion": "V8",
"oauthScopes": [
"https://www.googleapis.com/auth/calendar.addons.execute",
"https://www.googleapis.com/auth/script.locale",
"https://www.googleapis.com/auth/calendar.readonly",
"https://www.googleapis.com/auth/calendar",
"https://www.google.com/calendar/feeds",
"https://www.googleapis.com/auth/script.external_request"
],
< /code>
Я экспериментировал с получением его в качестве даты, строке, а затем передал его в Onclick, чтобы затем преобразовать его обратно в настоящее время. Для этой версии мы получаем недействительную дату, но прежде чем в основном я стал неопределенным, так что что -то не так, когда я пытаюсь захватить время событий.

Подробнее здесь: https://stackoverflow.com/questions/795 ... getendtime
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»