Google Apps Skript, GetStartTime/TendentimeJavaScript

Javascript-Forum
Anonymous
 Google Apps Skript, GetStartTime/Tendentime

Post by Anonymous »

Ich arbeite derzeit an einem einfachen internen Add-On für Google Calendar. Wenn wir auf ein Ereignis klicken, wählen wir eine Option aus einer Dropdown -Liste aus und klicken auf eine Schaltfläche. In diesem Fall nehmen Sie das ausgewählte Element mit seinen entsprechenden Attributen (funktionieren) und den Ereignissen beginnen und Endzeit. Ich kann nicht für die Liebe zu mir die Zeit zu arbeiten. Was fehlt mir? 1337?/**
* 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>
Dies ist ein Teil des 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>
Ich habe es experimentiert, es als Datum zu packen, als Zeichenfolge und dann an den Einklick weiterzugeben, um es dann zurück zu konvertieren. Für diese Version erhalten wir ein ungültig>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post