среда, сентября 12, 2012

Как твитнуть из Google Формы. Руководство-детектив

– Так вы говорите, что этот хомяк пришел в Твиттер из Гугл формы?

– И да,  и нет. Гугл-форма была началом его пути, но в твиттере он оказался благодаря рецепту в http://ifttt.com в котором все элементы rss ленты одного из блогов на Blogger попадают в твиттер

– Стоп, а кто тогда опубликовал этот пост с хомяком в Blogger (http://dztwitter.blogspot.com/)?


– Известно, что в настройках Blogger можно разрешить публикацию через email. И по горячим следам, мы выяснили, что этот хомяк запостился именно так. Это можно настроить вот здесь:
Настройки  --  Электронная почта и мобильные устройства


– Значит хомяка прислали по имейлу… Хм… странно, кто же способен на такое?
– На это способна обычная Гугл-форма, в которой есть пользовательский скрипт привязаный к событию отправки формы. Как только новая форма отправляется – запускается вся цепочка: на специальный почтовый адрес для публикации в блоггер – отправляются данные формы. Ifttt читает RSS блога – и постит новые элементы в твиттер.

Добавить новый пользовательский сценарий в Google Forms можно через Tools - Script Editor
В самом редакторе необходимо ввести следующий код, и привязать его к триггеру отправки формы. Это делается через меню Resources – Current Script Triggers.

Вот и все. Вот так хомяк случайно попал в форму, прошел по десятку серверов и оказался в твиттере.
– Но, зачем использовать гугл формы для хранения Хомяков?
– Дело в том, что Властелину Хомяков очень удобно парсить данные Google Docs для создания готового для публикации HTML с собранными ссылками. Но, Властелин очень хотел, чтобы при добавлении новой ссылки, она сразу же попадала в твиттер. А копи-пастить руками каждый раз Властелин не хотел, потому что он очень ленивый.

Кроме того, многие люди используют Google Forms для регистрации даже на очень большие конференции. А мгновенного автоматического подтверждения регистрации у многих нет.
Но, теперь то вы знаете, что это вполне реализуемо.

А вот сам скрипт-триггер:
function onFormSubmitted() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues()[numRows-1]; // Последняя запись

  message = values[1] + ": " + values[2] + " " + values[4];
  
  MailApp.sendEmail("dzhariy.!!!SALT!!!@blogger.com", "", message);
}

Комментариев нет: