SMS-регистрация — описание сервиса ================================== Бесплатный сервис для разработчиков сайтов: он позволял получать данные от посетителей через SMS. Посетитель отправлял SMS на номер сервиса, текст начинался с префикса — кодового слова конкретного сайта. Сайт затем забирал полученные сообщения в формате XML. SMS уходила на обычный мобильный номер, а не на платный короткий, поэтому посетителю она стоила как обычное сообщение по его тарифу. Так можно было, например, подтверждать телефон при регистрации, принимать голоса или заявки. Сервис давно не работает. Текст восстановлен по страницам и коду старого сайта. Как подключить сайт ------------------- 1. Войти на bartwell.ru и на странице «Установка на сайт» задать пароль для выгрузки: от 6 до 15 латинских букв, цифр, знаков «_» и «-». 2. На странице «Управление префиксами» создать префикс и указать адрес сайта, где он будет использоваться. Префикс — от 4 до 12 строчных латинских букв, цифр, знаков «_» и «-», уникальный среди всех пользователей. Префиксов может быть несколько. 3. Поставить кнопку bartwell.ru на главную страницу сайта. Это было обязательным условием использования сервиса. 4. Настроить скрипт сайта, который периодически забирает новые сообщения (см. «Выгрузка»). Формат SMS ---------- Текст начинается с префикса, после него обязательно пробел. Для префикса mysite правильно так: mysite smstext Всё после префикса — данные посетителя, их разбирает уже сайт. Выгрузка -------- Сайт запрашивал сообщения GET-запросом: http://bartwell.ru/services/smsr/export.php?id=&pass=<пароль>&prefix=<префикс> id ID пользователя на bartwell.ru; pass пароль для выгрузки из шага 1; prefix префикс, сообщения которого нужны; days необязательно: за сколько последних суток отдать сообщения, от 1 до 30. По умолчанию — за последние сутки. Готовую ссылку со своими ID, паролем и префиксом можно было взять на странице «Установка на сайт». Ответ — XML в кодировке Windows-1251: 0 2011-05-14 12:34:56+79990000000mysite smstext ... message id номер сообщения в сервисе, по нему удобно отсеивать уже обработанные; date когда сообщение получено сервером; phone номер отправителя; text полный текст SMS вместе с префиксом. Блок data есть только при errno = 0. Иначе в error — текст ошибки: 0 успешно 1 не указан id 2 id должен состоять из цифр 3 не указан пароль 4 пароль некорректен 5 не указан префикс 6 префикс некорректен 8 пользователь с таким id не найден 9 неверный пароль 11 префикс не найден 12 префикс принадлежит другому пользователю 13 не указано значение days 14 days должен состоять из цифр 15 days должен быть больше 0 16 days должен быть не больше 30 Коды 7, 10 и 13 также возвращались при ошибках базы данных, тогда в error было её сообщение. Как это было устроено внутри ---------------------------- SMS принимал телефон с номером сервиса. Он копил входящие сообщения и пачками отправлял их на сервер (handler.php) POST-запросом: номер пачки и файл, где каждая строка — «телефон~текст». Сервер сохранял сообщения с датой получения и в ответ возвращал номер пачки: так телефон понимал, что пачка принята, и мог повторить отправку, если ответа не было. Сервер ничего не знал о том, какому сайту адресовано сообщение, а просто хранил все SMS подряд. Разделение по сайтам происходило при выгрузке: export.php отдавал только сообщения, текст которых начинается с префикса и пробела, и только владельцу этого префикса. Правила сервиса --------------- - Без кнопки на главной странице или при использовании сервиса в незаконных и мошеннических целях префикс удалялся без предупреждения. - Сервис предоставлялся как есть, ответственность за его использование несёт администратор сайта. - Администрация могла отказать в использовании сервиса без объяснения причин.