Powiadomienie o DIODZIE za pomocą SMS'a
13.09.2012 | aktual.: 13.09.2012 12:36
Jak nie przegapić Alertu o zbliżającym się zapaleniu diody? Metod jest naprawdę wiele. Od tych najbardziej "łopatologicznych" (sorry za stwierdzenie) polegających na ciągłym odświeżaniu strony oraz skrzynki pocztowej. Skończywszy na powiadomieniach push w naszej komórce.
Push albo nie push oto jest pytanie!
W sumie ta metoda push wydaje się najlepsza. Ale zagłębiając się w nią można szybko stwierdzić, że: po pierwsze jest droga (opłaty za transfer danych w Polsce są jakie są i raczej każdy właściciel smartfona się o tym przekonał), po drugie ciągła synchronizacja powoduje nadmierne wykorzystanie baterii w naszym telefonie. Poniekąd wyczerpana bateria sprawiła, że dziś na pytanie odpowiedziałem "tylko" 3 godziny po pojawieniu się pytani. Po prostu tel padł a ja nawet tego nie zauważyłem. Dlatego też postanowiłem poszukać nieco innej - mniej energochłonnej (dosłownie) metody powiadomień o dostępnej poczcie.
To tak się da?
Jakiś czas temu - już nawet nie pamiętam gdzie i kiedy (ale raczej dawno) czytałem, że jakaś sieć w Polsce oferowała możliwość wysyłania całych maili za pośrednictwem SMS (wiem łasica - bez podania źródła to bullshit ;P - mam nadzieję, że wybaczycie). W każdym razie czegoś takiego szukałem - niestety nic nie wpadło mi w oko co by mogło zaspokoić moje nazwijmy to "pragnienie".
gmail + kalendarz Google + Google Drive = SMS
Skomplikowane? Owszem na pierwszy rzut oka nawet bardzo. Ale efekt jest dokładnie taki jak oczekiwałem. Z tego też względu przystępuję do wytłumaczenia jak takie "cudeńko" ustawić i zaprogramować(dosłownie)!
Konto gmail wymagane!
To zapewne od starszy osoby, które uważają przeglądarkowego giganta za szpiega nad szpiegi. Tym bardziej, że musimy podać tam swój numer telefonu (oczywiście komórkowy).
Póki co Gmail nie obsługuje powiadomień via SMS, ale funkcję tę ma kalendarz. Wystarczy dodać swój nr i odpowiednio skonfigurować powiadomienia.
Zacznijmy więc od dodania własnego nr. 1. W kalendarzu Google klikamy w prawym górnym rogu na ikonę koła zębatego, a następnie laboratorium (w sumie nie wiem dlaczego nie przenosi to od razu do wszystkich ustawień). 2. Kolejno wybieramy Konfiguracja telefonu komórkowego - wybieramy kraj Polska oraz wpisujemy nr. telefonu. Aby na końcu kliknąć "Wyślij kod weryfikacyjny" 3. Po kilku minutach (u mnie to trwało aż 15 min!) w telefonie ląduje numer, który należy wpisać w odpowiednie pole formularza 4. Zapisujemy całość klikając "Zakończ konfigurację"
Połowa pracy już za nami (połowa, jeżeli chodzi o Kalendarz). Gdyż kolejnym krokiem jest odpowiednie ustawienie powiadomień. Dlatego podobnie jak w poprzednim przypadku wchodzimy do ustawień i wybieramy zakładkę "Kalendarze" aby wybrać "Powiadomienia" dla kalendarza głównego danego konta. Ogólnie jest to zawsze pierwszy dostępny kalendarz z listy.
W wyświetlonej podstronie dodajemy nowe przypomnienie SMS ustawiając czas 0 min przed każdym wydarzeniem. Dla pewności zaznaczamy również checkbox'y z niższej listy dla kolumny SMS.
Na tym zakończyliśmy konfigurację Kalendarza. Dlatego też należy przejść do ustawień poczty gmail i stworzyć nową etykietę. np: "DIODA".
Aby to zrobić w ustawieniach wybieramy "Etykiety" i klikając na przycisk "Utwórz nową etykietę" podajmy wcześniejszą nazwę. W takim przypadku pora na konfigurację filtra - również w gmail'u. W ustawieniach wybieramy zakładkę "Filtry" a następnie "Utwórz nowy filtr". W wyświetlonym formularzu jako nadawcę podajemy "dioda@dobreprogramy.pl", a jako temat "Alert konkursowy!", a następnie klikamy "Utwórz filtr na podstawie tych kryteriów wyszukiwania".
W kolejnym etapie tworzenia filtra najważniejszą opcją jest zaznaczenie "Zastosuj etykietę" oraz wybraniu etykiety "DIODA".
Od tego momentu całą nudną robotę mamy już wykonaną. Filtrowanie poczty w gmailu utworzone, w kalendarzu google dodany nr. telefonu oraz ustawione powiadomienia.
Skrypt łączący gmaila z kalendarzem google
Za pośrednictwem Google Drive (Dysk Google ) utworzymy skrypt, który podczas swojego działania będzie sprawdzał co pewien okres czasu (pokażę jak ustawić ten "timer") czy na poczcie pojawiły się wiadomości oznaczone etykietą "DIODA", jeżeli tak to taką wiadomość wrzuci jako wydarzenie do kalendarza. Kalendarz zrobi co ma zrobić - czyli wyślę SMS'a, a skrypt kończąc swoją pracę usunie wydarzenie z kalendarza, oraz etykietę dla przefiltrowanej poczty (aby nie wysyłał powiadomień non stop).
UWAGA! Osobiście zalecam tworzenie skryptów - lub samą jego autoryzację za pomocą Google Chrome, gdyż np. na Operze występował jakiś konflikt z serwerem podczas procesu autoryzacji.
A więc na Dysku Google, klikamy "Utwórz" -> "Więcej" -> "Skrypt". W wyświetlonym oknie wybieramy "Pusty projekt".
Kod skryptu
Korzystanie z gotowców zdecydowanie ułatwia pracę. Dlatego też możecie się posiłkować przykładem zamieszczonym na developers.google.com/apps-script dotyczącym wysyłania smsów.
function powiadomienieSMS() { var watki = GmailApp.getUserLabelByName('DIODA').getThreads(); var czas = new Date(); if(watki == 0) return; for(i in watki) { CalendarApp.createEvent(watki[ i ].getFirstMessageSubject(), new Date(czas.getTime()+60000), new Date(czas.getTime()+60000)).setDescription('Do-kasowania'); } GmailApp.getUserLabelByName('DIODA').removeFromThreads(watki); Utilities.sleep(300000); var TodaysEvents = CalendarApp.getDefaultCalendar().getEventsForDay(czas); for (i in TodaysEvents) { if (TodaysEvents[ i ].getDescription()=='Do-kasowania') TodaysEvents[ i ].deleteEvent(); } }
Po kliknięciu na uruchom pojawia się autoryzacja
Poprawne zakończenie tego procesu oznacza bliski koniec.
Ostatnim krokiem jaki musimy wykonać to ustawienie częstotliwości wykonywania skryptu. Aby to zrobić w edytorze klikamy na "Zasoby" i "Wyzwalacze bieżącego skryptu".
Pojawi się mini-okno, w którym mamy możliwość dodania takich wyzwalaczy. Klikamy na "Dodaj nowy wyzwalacz". Który konfigurujemy jak na rycinie poniżej.
Finiko ;)
Podsumowanie
Od tego momentu gdy tylko w naszej poczcie pojawi się mail z Alertem po około 1‑3 min zostajemy powiadomieni o tym smsem. Niestety posiadacze kont pocztowych w innych skrzynkach nie doświadczą tej pomocy. Chyba że po założeniu konta na gmail'u będą importować pocztę z serwera macierzystego - w tym wypadku należy nieco inaczej skonfigurować filtrowanie. Oczywiście nic nie stoi na przeszkodzie ustawienia innych filtrów i dostosowaniu do nich skryptów informujących o ważnych wiadomościach, np. od szefa, albo żony.
Mam nadzieję, że pomogłem. Pozdrawiam;)