Не пугайтесь, I'm still alive, уходить пока не собираюсь (завтра улицу не в том месте перейду - и ... :)). В статье речь пойдет о завещании, или страховке. Если Вы когда-нибудь почувствуете, что над Вашей головой занесен меч, и у Вас есть что сказать после смерти (или ареста, например) , с помощью сервисов Google можно соорудить следующую страховку: если в течение недели мы не заходим по известной только нам ссылке, то мы предоставляем доступ к нашему завещанию определенному заранее кругу лиц.
Для создания завещания нам понадобится аккаунт Google и браузер.
Открываем браузер, идем на Google Drive, создаем документ. Назовем его "Завещание".
Создаем скрипт, пишем код.
Сохраняем версию скрипта и разворачиваем веб-приложение.
Авторизуем скрипт для работы со свойствами скрипта.
Не смотря на то, что в нашем случае скорость ни к чему, хочу обратить внимание любителей Google Apps Script как долго HtmlService справляется с такой простой операцией.
Продолжаем разговор. Заходим в контакты, создаем группу контактов, которым будем предоставлять доступ к нашему завещанию. Я назвал ее Testament.
Для теста добавим в эту группу какой-нибудь контакт.
В нашем скрипте пишем код функции, которая будет выполняться каждые 12 часов, сравнивать дату, сохраненную в свойстве скрипта с текущей датой, и в случае наличия разницы более 7 дней предоставлять доступ к завещанию пользователям группы контактов "Testament".
Для теста закомментируем условие разницы в 7 дней и выполним функцию.
Авторизуем скрипт еще раз.
В завершение создадим триггер (Ресурсы - Триггеры текущего проекта) для запуска функции compareDate() каждые 12 часов.
Не забываем раскомментировать строку, содержащую условие разницы в 7 дней. Сохраняем скрипт. Наше завещание готово.
Осталось создать ярлык на рабочем столе для того, чтобы не забывать хотя бы раз в неделю заходить по ссылке.
Открываем блокнот, пишем код скрипта создания ярлыка.
Сохраняем файл с расширением VBS, выполняем скрипт... вопрос решен.
Для создания завещания нам понадобится аккаунт Google и браузер.
Открываем браузер, идем на Google Drive, создаем документ. Назовем его "Завещание".
Создаем скрипт, пишем код.
function doGet(e) { if (!e.parameters.pw) return; if (e.parameters.pw != '12345') return HtmlService.createHtmlOutput('<b>Неверный пароль!</b>'); ScriptProperties.setProperty('lastAccessed', new Date()); return HtmlService.createHtmlOutput('<b>Я все еще жив!</b>'); }
Сохраняем версию скрипта и разворачиваем веб-приложение.
Авторизуем скрипт для работы со свойствами скрипта.
Не смотря на то, что в нашем случае скорость ни к чему, хочу обратить внимание любителей Google Apps Script как долго HtmlService справляется с такой простой операцией.
Продолжаем разговор. Заходим в контакты, создаем группу контактов, которым будем предоставлять доступ к нашему завещанию. Я назвал ее Testament.
Для теста добавим в эту группу какой-нибудь контакт.
В нашем скрипте пишем код функции, которая будет выполняться каждые 12 часов, сравнивать дату, сохраненную в свойстве скрипта с текущей датой, и в случае наличия разницы более 7 дней предоставлять доступ к завещанию пользователям группы контактов "Testament".
Для теста закомментируем условие разницы в 7 дней и выполним функцию.
function compareDate() { var docId = 'id_документа'; // id документа var groupName = 'Testament'; // название группы контактов var lastAccessed = new Date(ScriptProperties.getProperty('lastAccessed')).getDate(); var dateDiff = new Date().getDate() - lastAccessed; //if (Math.abs(dateDiff) > 7) { var contacts = ContactsApp.getContactGroup(groupName).getContacts(); var doc = DocumentApp.openById(docId); for (var i=0; i<contacts.length; i++) { var emailField = contacts[i].getEmails(); for (var j=0; j<emailField.length; j++) { doc.addViewer(emailField[j].getAddress()); } } //} }
Авторизуем скрипт еще раз.
В завершение создадим триггер (Ресурсы - Триггеры текущего проекта) для запуска функции compareDate() каждые 12 часов.
Не забываем раскомментировать строку, содержащую условие разницы в 7 дней. Сохраняем скрипт. Наше завещание готово.
function doGet(e) { if (!e.parameters.pw) return; if (e.parameters.pw != '12345') return HtmlService.createHtmlOutput('<b>Неверный пароль!</b>'); ScriptProperties.setProperty('lastAccessed', new Date()); return HtmlService.createHtmlOutput('<b>Я все еще жив!</b>'); } function compareDate() { var docId = 'id_документа'; // id документа var groupName = 'Testament'; // название группы контактов var lastAccessed = new Date(ScriptProperties.getProperty('lastAccessed')).getDate(); var dateDiff = new Date().getDate() - lastAccessed; if (Math.abs(dateDiff) > 7) { var contacts = ContactsApp.getContactGroup(groupName).getContacts(); var doc = DocumentApp.openById(docId); for (var i=0; i<contacts.length; i++) { var emailField = contacts[i].getEmails(); for (var j=0; j<emailField.length; j++) { doc.addViewer(emailField[j].getAddress()); } } } }
Осталось создать ярлык на рабочем столе для того, чтобы не забывать хотя бы раз в неделю заходить по ссылке.
Открываем блокнот, пишем код скрипта создания ярлыка.
Set objShell = WScript.CreateObject("WScript.Shell") Set objShortCut = objShell.CreateShortcut(objShell.SpecialFolders("Desktop") & "\Testament.url") objShortCut.TargetPath = "https://script.google.com/macros/s/id_скрипта/exec?pw=12345" objShortCut.Save()
Сохраняем файл с расширением VBS, выполняем скрипт... вопрос решен.
Комментариев нет:
Отправить комментарий
Комментарий будет опубликован после модерации