Dies ist eine Sammlung von Code-Snippets, die innerhalb von Google Apps
Script ausgeführt werden können. Die Snippets sind in hohem Maße anpassbar und
können in Fällen, in denen keine eigene Serverinfrastruktur vorhanden ist, sehr
nützlich sein.
Google Calendar
Für jede Funktion kann die Zeitspanne durch Ändern der Variable
Stunden
geändert werden. Der Standardwert ist 96.
SMS
Die Funktion Sms77CalendarSMS
sendet eine SMS für jedes Ereignis, das
in dem angegebenen Zeitrahmen eintritt.
function Sms77CalendarSMS() {
const apiKey = 'IHR_SMS77_SCHNITTSTELLENSCHLÜSSEL';
const to = 'DIE_GEWÜNSCHTE_EMPFÄNGERNUMMER';
const zuPlatzhalter = key => `:${key}:`;
const platzhalter_id = zuPlatzhalter('ID');
const platzhalter_zeit = zuPlatzhalter('TIME');
const platzhalter_titel = zuPlatzhalter('TITLE');
const jetzt = new Date();
const statusTagKey = 'sms77_status_sms';
const statusTagValue = 'ok';
const textVorlage = `Google Kalendar: Anstehendes Ereignis: ${platzhalter_titel} mit ID ${platzhalter_id} beginnt ${platzhalter_zeit}.`;
const kalendarName = '';
const debug = false;
const delay = '';
const flash = false;
const foreign_id = '';
const absender = 'GoogleApps';
const stunden = 96; // Stunden ab jetzt bis Enddatum
const label = '';
const performance_tracking = false;
for (const event of ('' === kalendarName ? CalendarApp.getDefaultCalendar()
: CalendarApp.getCalendarsByName(kalendarName)).getEvents(
jetzt, new Date(jetzt.getTime() + (stunden * 60 * 60 * 1000)))) {
if (statusTagValue === event.getTag(statusTagKey)) continue;
let text = textVorlage;
Object.entries({
[platzhalter_id]: () => event.getId(),
[platzhalter_zeit]: () => event.getStartTime(),
[platzhalter_titel]: () => event.getTitle(),
}).forEach(([k, v]) => text = text.replace(k, v()));
const payload = {
from: absender,
text,
to,
};
Object.entries({
debug,
delay,
flash,
foreign_id,
from: absender,
label,
performance_tracking
}).forEach(([k, v]) => {
if (false !== v) {
if (true === v) payload[k] = '1';
else if ('' !== v) payload[k] = v;
}
});
const antwort = UrlFetchApp.fetch('https://gateway.sms77.io/api/sms', {
headers: {
SentWith: 'Google-Apps',
'X-Api-Key': apiKey,
},
method: 'post',
payload,
}).getContentText();
if (100 !== Number.parseInt(antwort)) throw new Error(`Unexpected status code "${antwort}".`);
Logger.log(antwort);
event.setTag(statusTagKey, statusTagValue);
}
}
Sprachnachricht
Die Funktion Sms77CalendarVoice
gibt für jedes Ereignis, das im
angegebenen Zeitraum eintritt, einen Text-to-Speech-Aufruf aus.
function Sms77CalendarVoice() {
const apiKey = 'IHR_SMS77_SCHNITTSTELLENSCHLÜSSEL';
const to = 'DIE_GEWÜNSCHTE_EMPFÄNGERNUMMER';
const zuPlatzhalter = key => `:${key}:`;
const platzhalter_id = zuPlatzhalter('ID');
const platzhalter_zeit = zuPlatzhalter('TIME');
const platzhalter_titel = zuPlatzhalter('TITLE');
const jetzt = new Date();
const statusTagKey = 'sms77_status_voice';
const statusTagValue = 'ok';
const textVorlage = `Google Kalendar informiert über anstehendes Ereignis ${platzhalter_titel} mit Beginn ${platzhalter_zeit}.`;
const kalendarName = '';
const absender = '+491771783130';
const stunden = 96; // Stunden ab jetzt bis Enddatum
const xml = false;
for (const event of ('' === kalendarName ? CalendarApp.getDefaultCalendar()
: CalendarApp.getCalendarsByName(kalendarName)).getEvents(
jetzt, new Date(jetzt.getTime() + (stunden * 60 * 60 * 1000)))) {
if (statusTagValue === event.getTag(statusTagKey)) continue;
let text = textVorlage;
Object.entries({
[platzhalter_id]: () => event.getId(),
[platzhalter_zeit]: () => event.getStartTime(),
[platzhalter_titel]: () => event.getTitle(),
}).forEach(([k, v]) => text = text.replace(k, v()));
const payload = {
from: absender,
text,
to,
};
if (xml) payload.xml = '1';
const antwort = UrlFetchApp.fetch('https://gateway.sms77.io/api/voice', {
headers: {
SentWith: 'Google-Apps',
'X-Api-Key': apiKey,
},
method: 'post',
payload,
}).getContentText();
Logger.log(antwort);
const code = antwort.split('\n')[0];
if ('100' !== code) throw new Error(`Unerwarteter Statuscode "${code}".`);
event.setTag(statusTagKey, statusTagValue);
}
}
Google Kontakte
SMS
Die Funktion Sms77ContactsSMS
sendet eine SMS an alle Ihre Kontakte.
function Sms77ContactsSMS() {
const apiKey = 'IHR_SMS77_SCHNITTSTELLENSCHLÜSSEL';
const zuPlatzhalter = key => `:${key}:`;
const platzhalter_id = zuPlatzhalter('ID');
const platzhalter_name = zuPlatzhalter('FULL_NAME');
const placeholder_notizen = zuPlatzhalter('NOTES');
const textVorlage = `Liebste(r) ${platzhalter_name}, unsere neue Rufnummer lautet +4901234567890. Beste Grüße von Phil von sms77!`;
const debug = false;
const delay = '';
const flash = false;
const foreign_id = '';
const absender = 'GoogleApps';
const label = '';
const performance_tracking = false;
for (const contact of ContactsApp.getContacts()) {
const phones = contact.getPhones();
if (!phones.length) continue;
let text = textVorlage;
Object.entries({
[platzhalter_id]: () => contact.getId(),
[platzhalter_name]: () => contact.getFullName(),
[placeholder_notizen]: () => contact.getNotes(),
}).forEach(([k, v]) => text = text.replace(k, v()));
const payload = {
from: absender,
text,
to: (phones.find(p => p.isPrimary()) || phones.shift()).getPhoneNumber(),
};
Object.entries({
debug,
delay,
flash,
foreign_id,
from: absender,
label,
performance_tracking
}).forEach(([k, v]) => {
if (false !== v) {
if (true === v) payload[k] = '1';
else if ('' !== v) payload[k] = v;
}
});
const antwort = UrlFetchApp.fetch('https://gateway.sms77.io/api/sms', {
headers: {
SentWith: 'Google-Apps',
'X-Api-Key': apiKey,
},
method: 'post',
payload,
}).getContentText();
if (100 !== Number.parseInt(antwort)) throw new Error(`Unexpected status code "${antwort}".`);
Logger.log(antwort);
}
}
Sprachnachrichten
Die Funktion Sms77ContactsVoice
gibt einen Text-to-Speech-Anruf an
alle Ihre Kontakte aus.
function Sms77ContactsVoice() {
const apiKey = 'IHR_SMS77_SCHNITTSTELLENSCHLÜSSEL';
const zuPlatzhalter = key => `:${key}:`;
const platzhalter_id = zuPlatzhalter('ID');
const platzhalter_name = zuPlatzhalter('FULL_NAME');
const placeholder_notizen = zuPlatzhalter('NOTES');
const textVorlage = `Liebste(r) ${platzhalter_name} unsere neue Rufnummer lautet +4901234567890. Beste Grüße Phil von sms77!`;
const absender = '+491771783130';
const xml = false;
for (const contact of ContactsApp.getContacts()) {
const phones = contact.getPhones();
if (!phones.length) continue;
let text = textVorlage;
Object.entries({
[platzhalter_id]: () => contact.getId(),
[platzhalter_name]: () => contact.getFullName(),
[placeholder_notizen]: () => contact.getNotes(),
}).forEach(([k, v]) => text = text.replace(k, v()));
const payload = {
from: absender,
text,
to: (phones.find(p => p.isPrimary()) || phones.shift()).getPhoneNumber(),
};
if (xml) payload.xml = '1';
const antwort = UrlFetchApp.fetch('https://gateway.sms77.io/api/voice', {
headers: {
SentWith: 'Google-Apps',
'X-Api-Key': apiKey,
},
method: 'post',
payload,
}).getContentText();
Logger.log(antwort);
const code = antwort.split('\n')[0];
if ('100' !== code) throw new Error(`Unerwarteter Statuscode "${code}".`);
}
}