Подробная инструкция по настройке SMS-уведомлений

Что для этого требуется:
 

1. Настроить Google Calendar
Для отправки SMS будем использовать Google Calendar. Поэтому его нужно предварительно настроить.
Заходим в Google Calendar и в правом верхнем углу нажимаем на шестеренку. 
Затем выбираем Настройки Календаря. 
Теперь переходим на вкладку Настройка для мобильных устройств.





Вводим номер своего мобильного телефона в  международном формате и нажимаем кнопку Отправить проверочный код (если Вашего оператора нет в списке поддерживаемых, то это еще не значит, что Google не работает с Вашим оператором).
Должна сразу придти SMS от Google с цифрами. 
Вводим эти цифры в поле Проверочный код и нажимаем кнопку Завершить настройку.
После этого должна появиться зеленая надпись Номер телефона успешно проверен.
Нажимаем внизу кнопку Сохранить.

2. Зарегистрироваться в Google App Engine
Открываем Google App Engine и вводим свой адрес электронной почты и пароль. 


Нажимаем кнопку Create Application.







Если Вы заходите впервые, то придется ввести номер своего мобильного телефона, нажать кнопку Send и ввести цифры из присланной SMS от Google.

Теперь необходимо придумать любое имя для своего приложения, которое еще не занято. В данном случае, имя приложения будет app7777777. Вводим его в поле Application Identifier и нажимаем внизу на кнопку Create Application.
После этого должна появиться надпись Application Registered Successfully. Значит, приложение создано. 
Если не появилась, попробуйте придумать другое имя для приложения.
В дальнейшем везде, где по тексту будет использовано имя app7777777, Вы должны подставлять свое имя приложения.

3. Скачать код приложения
Скачиваем код приложения mail2sms_ver6_rus.zip
Распаковываем содержимое, например, в папку C:\Downloads
Теперь переименуем папку C:\Downloads\mail2sms в C:\Downloads\app7777777 



Зайдем в папку app7777777 и найдем там файл app.yaml. Откроем этот файл в любом текстовом редакторе, например, в Блокноте.













В первой строчке файла заменим mail2sms на app7777777  и сохраним файл.







4. Скачать и установить Python и SDK.
Скачиваем Python и устанавливаем его.
Теперь скачиваем SDK Google App Engine и установливаем его.
После установки SDK на рабочем столе должен появиться ярлык Google App Engine Launcher 
5. Загрузить приложение на appspot.com
Запускаем на рабочем столе Google App Engine Launcher.
Выбираем меню File/Add Existing Application...

Нажимаем на кнопку Browse... и указываем папку с приложением.
Нажимаем Ok и, затем, кнопку Add.
Теперь осталось загрузить приложение.
Щелкаем мышкой по приложению в списке и нажимаем на кнопку в панели инструментов Deploy
В появившемся окне указываем свой e-mail и пароль. Нажимаем кнопку Ok.





Ждем пока появится строка Process exited with code 0
Значит, приложение загрузилось успешно.
Теперь можно закрыть Google App Engine Launcher.







6. Настроить приложение
Открываем браузер (Mozilla Firefox, Chrome, Opera, Internet Explorer) и переходим на страницу с нашим приложением. 
В нашем случаи это app7777777.appspot.com

Заходим в настройки приложения нажав на Настройка













Вводим свой e-mail и пароль как на картинке ниже.
Также устанавливаем галки на E-mail 1 и Вкл. SMS. 
Нажимаем внизу кнопку Сохранить.
Все. Теперь можно проверять. Посылаете письмо на свой e-mail и ждете. SMS приходит через 1-2 минуты после получения письма.

Чтобы правильно работал ночной режим (в этом режиме SMS не приходят ночью), нужно правильно указать свой часовой пояс. Для Москвы +4, для Беларуси +3, для Украины +2 зимой и +3 летом.

Поделитесь инвайтом на хабр

Не запускается Google App Engine Launcher
Установил Google App Engine Launcher, но он не запускается. После запуска выдает посмотри логи. Вот что в логах
ConfigParser.NoOptionError: No option 'name' in section: '0'
Удалите файл google_appengine_projects.ini (C:\Documents and Settings\ USER_NAME \Google\google_appengine_projects.ini)


При загрузке приложения в логах выдает следующее
File "C:\Program Files (x86)\python\lib\mimetypes.py", line 249, in enum_types
ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
2012-01-04 17:19:05 (Process exited with code 1)
Вам необходимо открыть редактор реестра (Пуск> Выполнить> regedit) и
в ветке HKEY_CLASSES_ROOT/Mime/Database/ContentType/ удалить все ключи, в которых есть кириллица. Проблема в том, что Google App Engine Launcher очень не любит русские буквы.



2011-01-11 11:57:22 Running command: "['C:\\Python27\\pythonw.exe', '-u', 'C:\\Program Files\\Google\\google_appengine\\appcfg.py', '--no_cookies', u'--email=myemail@gmail.com', '--passin', 'update', u'C:\\Documents and Settings\\user\\\u041c\u043e\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b\\\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0438\\ghg2gfd']"
Google App Engine Launcher не любит русских букв. Перенесите приложение в другую папку, в пути которой нет русских букв, например, C:\Download.



Use an application-specific password instead of your regular account password.
Error 401: --- begin server output ---
Must authenticate first.
--- end server output ---
2011-12-17 14:34:45 (Process exited with code 1)
У Вас включена двухэтапная аутентификация. Cгенерируйте специальный пароль на странице https://www.google.com/accounts/IssuedAuthSubTokens и используйте этот пароль при загрузке и в настройках приложения. (Справка http://support.google.com/accounts/bin/static.py?hl=ru&page=guide.cs&guide=1056283&answer=185833&rd=3)



Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\appcfg.py", line 77, in 
run_file(__file__, globals())
File "C:\Program Files (x86)\Google\google_appengine\appcfg.py", line 73, in run_file
execfile(script_path, globals_)
NameError: global name 'execfile' is not defined
2012-02-10 16:27:07 (Process exited with code 1)
Вероятнее всего проблема в том, что у вас установлен Python 3.2. Google App Engine пока не поддерживает Python 3.x. Скачайте и установите Python 2.7.2 (http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi).



fancy_urllib.InvalidCertificateException: Host appengine.google.com returned an invalid certificate (_ssl.c:503: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed):
To learn more, see http://code.google.com/appengine/kb/general.html#rpcssl
2011-01-12 12:46:57 (Process exited with code 1)
Видимо у Вас установлен модуль ssl Python (http://pypi.python.org/pypi/ssl/). Попробуйте удалить его и повторить загрузку приложения.



Общие вопросы
При нажатии на «Настройка» получаю:
Error: Forbidden
Your client does not have permission to get URL /settings from this server.
Зайдите сначала в браузере на www.appspot.com, а затем, не выходя из www.appspot.com, перейдите в настройки приложения.



Есть ли какое-то ограничение по количеству отсылаемым смс Гугл-календарем?
Ограничение у Google есть, но какое конкретно не ясно http://support.google.com/calendar/bin/answer.py?hl=ru&answer=36589.
Опыт показывает, что, скорее всего, у Google ограничение на количество смс отправляемые на одного оператора. Иначе оператор заблокировал бы все смс от Google за спам.



Какова логика цикличной смены аккаунтов? То есть имея несколько аккаунтов, они с какой то периодичностью по очереди опрашиваются? А СМС отправляется на один номер? 
Цикличная смена аккаунтов нужна для повышения количества дошедших смс.
Сейчас эта функция не актуальна, так как смс доходят стабильно.
Создаются несколько аккаунтов с одним и тем же номером мобильного телефона в календарях. Эти аккаунты сменяются по очереди.



После загрузки приложения в логах появляются ошибки:
W 2012-01-26 20:38:24.309
EXCEPTION
java.lang.ClassNotFoundException: guestbook.GuestbookServlet

E 2012-01-26 20:38:24.311
javax.servlet.ServletContext log: unavailable
javax.servlet.UnavailableException: guestbook.GuestbookServlet

W 2012-01-26 20:38:24.316
Failed startup of context com.google.apphosting.utils.jetty.RuntimeAppEngineWebAppContext@1fa490e{/,/base/data/home/apps/s~ezhikson/1.356168065505461340}
java.lang.NullPointerException

C 2012-01-26 20:38:24.321
Uncaught exception from servlet
javax.servlet.UnavailableException: Initialization failed.
Вы установили SDK Google App Engine для Java, а так как приложение написано на Python, то и SDK Google App Engine нужно установить для Python http://code.google.com/intl/ru/appengine/downloads.html.