34 Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script


 |  ❤ 2346  |  ☻ 0
Категория: Программирование
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(1 голос, в среднем: 5 из 5)

Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script
Хочу поделиться с Харбра-обществом полезным, с моей точки зрения, лайвхаком: уведомления по SMS о новой почте в ящике Gmail. Реализуется это небольшим скриптом, который живет и работает в Google Drive (бывшие Google Docs).

Принцип работы следующий: скрипт по таймеру проверяет папку «Входящие» в почтовом ящике и если обнаруживает новые письма, то создает в google calendar событие с именем, как тема письма, и включает для него SMS уведомление. В результате вам приходит SMS сообщение следующего содержания:

Напоминание: Тема письма @ дата и время

Подробности реализации, как всегда, под «катом».

Итак, что нужно для начала: у вас должен быть привязан телефонный номер к Google Calendar, как это сделать написано вот тут — Регистрация мобильного телефона:
support.google.com/calendar/bin/answer.py?hl=ru&hlrm=en&answer=45351

Следующие несколько шагов необходимо выполнить, что бы скрипт мог корректно обрабатывать новую почту.

Шаг 1: Создайте новый ярлык в Gmail с именем, например, SMSnotify (или любым другим, по вашему усмотрению). Как это сделать написано вот тут – Использование ярлыков:
support.google.com/mail/bin/answer.py?hl=ru&hlrm=ru&answer=118708#0

Шаг 2: Создайте фильтр, который будет применять ярлык SMSnotify ко всем входящим ( To: <ваше-имя> @ gmail.com). Как это сделать, написано вот тут – Использование фильтров:
support.google.com/mail/bin/answer.py?hl=ru&hlrm=ru&answer=6579#0
Таким образом, все новые письма будут отмечаться этим ярлыком.

Шаг 3: Войдите в Google Drive (или Docs, если еще не переключились) и создайте новую электронную таблицу (Spreadsheet). Откройте созданную таблицу и в верхнем меню выберите Tools > Script Editor.
Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

Шаг 4: В связи с тем, что при установке уведомлений прямо из кода, часто возможны ошибки вида

Calendar: Mismatch: etags

(детальнее тут: code.google.com/p/google-apps-script-issues/issues/detail?id=264)

Нужно создать доп. календарь и настроить SMS уведомления: установить по-умолчанию для всех новых встреч вот так:

Читайте также:  Видеоролик "Создание рекламного кода"

Настройки->Календари->Уведомления->По умолчанию->SMS->%% мин

В этом примере имя календаря будет «email»

Приятно удивился, узнав, что теперь из интерфейса гуглодиска можно создавать скрипты как отдельные приложения, не встроенные в таблицу. Так что «Шаг 3» теперь можно свести к следующему:
Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

Откроется новая страница с гугловской “скрипт-IDE”, вот тут и начинается самое интересное.

Код
function my_notification() 
{
  var calendar = CalendarApp.getOwnedCalendarsByName('email')[0]; //открываем календарь с именем "email"

  var threads = GmailApp.getUserLabelByName('SMSnotify').getThreads();  //переменная, в которой хранится коллекция цепочек с ярлыком SMSnotify
  var now = new Date();

  if(threads == 0) return; // прекращение выполнения, если новых цепочек нет

  for(i in threads) // создаем события
  {
    calendar.createEvent(threads[i].getFirstMessageSubject(),
        new Date(now.getTime()+60000),
        new Date(now.getTime()+60000));
  }

  GmailApp.getUserLabelByName('SMSnotify').removeFromThreads(threads); //снимаем метки "SMSnotify" с цепочек
}

После того, как вы ввели код, нужно создать триггер по которому и будет запускаться скрипт. Для этого кликаем на меню «Ресурсы«, а в нем на «Триггеры текущего скрипта«.

Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

Нам нужен time-driven триггер с частотой повторения, например, один час.

Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

В процессе изменения условий срабатывания триггера или сохранения изменений в самом скрипте, будет появляться окошко авторизации. Смело авторизуем :)
Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

После всех манипуляций, в качестве теста, пробуем запустить скрипт на выполнение.

Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

Иногда вам могут приходить сообщения о неудачном выполнении скрипта (даже если код правильный и до этого все работало). Эти сообщения можно отключить (хотя я оставил): нужно кликнуть на «notifications» («уведомления») в окне редактора триггеров и появится вот такое окошко

Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

Спасибо, что дочитали до конца, надеюсь, ничего не забыл. Буду очень рад, если кому-то это пригодится.
Любые замечания, дополнения, критика приветствуются! Совсем недавно открыл для себя этот замечательный API и только начал с ним знакомиться.

Читайте также:  Как ускорить ваш магазин на OpenCart

Ссылки по теме:
Документация по стандартным службам (только англ) — developers.google.com/apps-script/defaultservices
Различные руководства (только англ) — developers.google.com/apps-script/articles

Теги:


    По теме: ( из рубрики Программирование )

наверх