Новости из Блогов Как встроить в Web-приложение мобильные текстовые сообщения

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 11 Aug 2012.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,482
    Likes Received:
    7,062
    Reputations:
    693
    Как встроить в Web-приложение мобильные текстовые сообщения


    Обмен сообщениями стал основным способом мобильного общения. В 2010 году американцы отправили и получили на свои мобильные телефоны свыше 2,1 трлн текстовых сообщений. По некоторым оценкам, во всем мире число активных пользователей системы мобильных сообщений вдвое превышает число пользователей электронной почты, что делает обмен мобильными сообщениями, пожалуй, самым распространенным и эффективным каналом связи на сегодняшний день. Более того, по сравнению с другими каналами связи, такими как электронная почта, мобильный обмен сообщениями гораздо меньше подвержен спаму, и вероятность того, что сообщение будет немедленно прочитано получателем, для него гораздо выше.

    Однако в отличие от электронной почты, открытого интернет-стандарта, мобильные сообщения распространяются через закрытую инфраструктуру связи. Это делает разработку приложений с использованием мобильных сообщений сложным и дорогостоящим делом. В этой статье предлагается несколько недорогих, или даже бесплатных способов включения мобильных сообщений в приложения.

    Барьер для разработки приложений с использованием мобильных сообщений:
    "Закрытый" характер служб обмена мобильными сообщениями представляет собой существенный барьер для разработчиков. Однако этот барьер делает приложения, которые могут управлять обменом мобильными сообщениями, особенно привлекательными. Например, Twitter начинал как компания, специализирующаяся на текстовых сообщениях — отсюда и ограничение на твиты в 140 символов, – а затем, воспользовавшись достигнутым успехом, превратился в сегодняшнюю гигантскую платформу общения. Еще одним примером служит Facebook, который также в самом начале использовал активную SMS-программу (отправка текста на FBOOK с мобильного телефона).



    Основы системы мобильных сообщений

    SMS ― наиболее распространенный способ обмена мобильными сообщениями. Практически каждый мобильный телефон способен отправлять и принимать SMS-сообщения, длина которых ограничена 160 символами. С учетом различий между операторами безопасный предел длины SMS составляет 140 символов.

    Служба мультимедийных сообщений (MMS) представляет собой расширение SMS, которое позволяет отправлять и принимать на телефон фотографии и короткие видеоклипы. Размер сообщения обычно ограничен 300 КБ. На самом деле для уведомления пользователя MMS используется SMS, и когда тот открывает сообщение, телефон извлекает мультимедийный контент посредством стандартного протокола электронной почты. Обмен MMS очень популярен среди молодежи, но его общее рыночное проникновение пока еще относительно мало, отчасти из-за несовместимых форматов контента у разных операторов.

    SMS и MMS используются главным образом для прямой связи, позволяя пользователям отправлять сообщения друг другу. Разработчиков же приложений в первую очередь интересует возможность отправки и приема сообщений из приложений и их получения приложениями. На отраслевом жаргоне, нас интересуют сообщения типа Mobile Terminated (MT) ― отправленные из приложения на мобильное устройство – и Mobile Originated (MO) – из мобильного устройства в приложение. Чтобы отправлять и принимать сообщения от мобильных телефонов, приложение должно взаимодействовать с серверами шлюзов, находящихся в ведении операторов связи.

    Push-уведомления:
    С ростом числа смартфонов, таких как iPhone и Android, появилась возможность отправлять сообщения непосредственно на эти телефоны через стандартную сеть TCP/IP, в обход операторов связи. Такие сообщения называются push-сообщениями. Push-сообщения передаются через интернет-серверы, контролируемые Apple и Google. Push-сообщения изначально предназначены для взаимодействия с приложениями. Они позволяют передавать текст, медиа-файлы и данные приложений, например, мелодии звонка и изображения для отображения в качестве значка приложения. Push-уведомления хороши для смартфонов, но они гораздо менее широко распространены и менее надежны, чем мобильные сообщения, передаваемые операторами связи.



    Бесплатная отправка SMS и MMS

    Отправить МТ-сообщение SMS или MMS на номер телефона на самом деле довольно легко - если знать номер телефона получателя и оператора связи. Почти все операторы мобильной связи имеют шлюзы, которые принимают сообщения электронной почты и передают их на телефоны как SMS- или MMS-сообщения. Например, абоненту АТ&T можно отправлять SMS-сообщения через адрес электронной почты [email protected]. AT&T усечет сообщение до 140 символов и першлет его на телефон. Рисунок 1 иллюстрирует, как такое сообщение отображается на экране телефона.

    Рисунок 1. SMS-сообщение, переданное через шлюз электронной почты оператора связи
    [​IMG]

    Аналогично, сообщения email с вложенными фотографиями можно передавать на телефон через шлюз электронной почты MMS оператора связи как MMS-сообщения. В таблице 1 приведены адреса электронной почты для SMS- и MMS-сообщений крупных операторов связи США. Замените слово number в адресе электронной почты 10-значным номером телефона получателя (например, [email protected]).

    Таблица 1. Адреса шлюзов электронной почты крупных операторов связи США для передачи сообщений SMS и MMS.
    [​IMG]

    Подход шлюза электронной почты хорош для отправки отдельных уведомлений или напоминаний, но в большинстве других случаев он имеет серьезные ограничения:

    • сообщение приходит от произвольных телефонных номеров и плохо отформатировано. Оно выглядит непрофессионально;
    • пользователь не может ответить на сообщение или возвратить в приложение какую-либо информацию. Это исключает целые категории приложений, в том числе наиболее популярные SMS-приложения, такие как Twitter и American Idol;
    • поскольку каждое сообщение приходит с нового номера телефона, пользователь не может установить закладку, чтобы связать этот номер с приложением;
    • чтобы правильно выбрать шлюз электронной почты, при регистрации пользователя придется просить его указать своего оператора мобильной связи.

    Для профессионального взаимодействия с пользователями необходимо отправлять и получать сообщения через соответствующий телефонный номер, который ассоциируется с вашей службой. Традиционно для этого применяются короткие номера.


    Использование короткого номера


    Каждый из нас, скорее всего, ежедневно сталкивается с короткими номерами. Это 5-значные номера, которые можно увидеть в ресторанах, на спортивных мероприятиях или на объявлениях о продаже недвижимости. Вам предлагают отправить текстовое сообщение по номеру 12345, чтобы получить дополнительную информацию или купон и т.п. Короткие номера находятся в ведении "агрегаторов сообщений", которые действуют от имени операторов связи. В число основных агрегаторов в США входят mblox, Sybase 365 и др. Можно зарегистрировать короткий номер у одного из этих агрегаторов, и тот предоставит вам API Web-службы на основе HTTP, который позволяет отправлять сообщения с этого короткого номера на любой номер телефона (MT) и получать ответ, если кто-то пришлет на него сообщение (MO). Кажется, что все просто, но у такого использования коротких номеров есть серьезные недостатки:

    • во-первых, за специальный короткий номер нужно очень дорого заплатить. Он стоит несколько тысяч долларов в месяц, плюс высокая начальная цена и плата за сообщения;
    • во-вторых, короткие номера регулируются Ассоциацией мобильного маркетинга (ММА). ММА требует, чтобы все заявители предварительно утверждались каждым из операторов связи. Это длительный и дорогостоящий процесс.

    К счастью, существуют компании, которые предоставляют короткие номера общего пользования за умеренную плату. Ведущий поставщик услуг этого типа - TextMarks. Короткий номер TextMarks очень легко запомнить: 41411. Поскольку его используют многие приложения, каждому приложению присваивается свое ключевое слово. Например, я зарегистрировал в TextMarks ключевое слово conf и организовал URL обратного вызова для этого ключевого слова (см. рисунок 2). URL обратного вызова может содержать шаблоны со ссылками на отдельные части входящего SMS. Например, \p указывает на номер телефона отправителя входящего сообщения, а \0 ― на текст сообщения, следующий за ключевым словом.

    Рисунок 2. Регистрация URL обратного вызова и ключевого слова в TextMarks
    [​IMG]

    Теперь TextMarks будет перенаправлять на URL обратного вызова каждое сообщение, которое начинается словом CONF. Например, если кто-то пришлет на номер 41411 сообщение "conf Michael Jack" со своего мобильного телефона 5125551234, на мой URL обратного вызова придет запрос GET, показанный в листинге 1:

    Листинг 1. Пример запроса GET
    Code:
    http://app.ringful.com/conf?
        attendees=Michael+Jack&
        phonenumber=15125551234
    Приложение обработает этот запрос. Оно может проанализировать сообщение, сохранить сведения об участниках конференции (attendees) в базе данных, уведомить их, а затем сгенерировать ответ отправителю сообщения. Тело HTTP-ответа от URL обратного вызова будет возвращено пользователю как ответное текстовое сообщение. Это значительно упрощает создание SMS-приложений, реагирующих на ввод данных пользователем (например, присылая купон для получения скидки в ресторане или сообщая цену продажи дома).

    Когда пользователь набирает ваше ключевое слово, он регистрируется как абонент этого ключевого слова. TextMarks предоставляет также API разработчика, позволяющий отправлять SMS-сообщения абонентам в любое время, каждому отдельно или всем сразу. Вызов API, приведенный в листинге 2, отправляет сообщение всем абонентам ключевого слова:

    Листинг 2. Вызов API для отправки сообщения всем абонентам ключевого слова
    Code:
    POST TO: http://dev1.api2.textmarks.com/GroupLeader/broadcast_message/
    Parameters:
        auth_user=YOUR_USERNAME
        auth_pass=YOUR_PASSWORD
        api_key=API_KEY_FROM_TEXTMARKS
        tm=YOUR_KEYWORD
        msg=The+message+to+send+out
    Следующий вызов отправляет сообщение одному абоненту ключевого слова:

    Листинг 3. Вызов API для отправки сообщения отдельному абоненту ключевого слова
    Code:
    POST TO: http://dev1.api2.textmarks.com/GroupLeader/send_one_message/
    Parameters:
        auth_user=YOUR_USERNAME
        auth_pass=YOUR_PASSWORD
        api_key=API_KEY_FROM_TEXTMARKS
        tm=YOUR_KEYWORD
        to=RECIPIENT_PHONE_NUMBER
        msg=The+message+to+send+out
    TextMarks чрезвычайно удобен, однако пользователям приходится запоминать ключевое слово и каждый раз указывать его при отправке текстового сообщения. Кроме того, нельзя отправить сообщение МТ тому, кто предварительно не прислал вам ваше ключевое слово (то есть неабоненту). Вся идея ключевых слов и коротких номеров нацелена на крупномасштабные рассылки сообщений, тогда как многим приложениям требуется прямое взаимодействие. Для прямого взаимодействия лучшим и, вероятно, наиболее экономичным вариантом будет длинный номер.


    Использование длинного номера

    Под "длинным номером" понимается обычный 10-значный номер телефона. Вместо аренды коротких номеров за тысячи долларов в месяц, можно арендовать обычные телефонные номера всего за 1 доллар в месяц (или даже получить их бесплатно, как в случае использования Google Voice). Так как эти телефонные номера не связаны с физическими телефонами, их еще называют "виртуальными номерами". Через эти виртуальные номера можно отправлять и принимать мобильные сообщения.

    Twilio ― не только служба мобильных сообщений:
    API Twilio позволяет совершать голосовые телефонные звонки и принимать их от виртуальных номеров, поддерживая VoIP-вызовы наподобие Skype. Подробнее об этом можно узнать на Web-сайте Twilio и в документации API (см. раздел Ресурсы).


    Ведущий поставщик Web-услуг, работающих с длинными номерами — Twilio. Используя API Twilio, можно получить любое сообщение, отправленное на этот номер телефона, и отправлять сообщения на любые номера мобильных телефонов, даже международные.

    Twilio предоставляет консоль администрирования, которая позволяет управлять несколькими виртуальными номерами. Поскольку эти номера стоят всего 1 доллар в месяц, можно получить по номеру на каждое из своих приложений, и пользователю не придется вводить никаких ключевых слов. За каждое SMS, отправленное или полученное через его API, Twilio берет 1 цент.

    API Web-службы Twilio хорошо продуман и прост в применении. Еще больше упрощает задачу то, что Twilio предоставляет разработчикам SDK для разных языков программирования. Ниже приведены некоторые примеры, основанные на SDK для Java. В листинге 4 показано, как отправить сообщение на номер мобильного телефона.

    Листинг 4. Отправка SMS на любой номер мобильного телефона через API Twilio
    Code:
    public static void sendSms (String from, String to, 
            String msg) throws Exception {
        TwilioRestClient client = 
            new TwilioRestClient YOUR_API_KEY, null);
        String path = "/2010-04-01/Accounts/"+
            client.getAccountSid()+"/SMS/Messages";
    
        Map<String, String> vars = 
            new HashMap <String, String> ();
        vars.put("From", from);
        vars.put("To", to);
        vars.put("Body", msg);
    
        TwilioRestResponse tresp = 
            client.request(path, "POST", vars);
        if (tresp.isError()) {
            throw new Exception ("Twilio response error: " 
                + tresp.getResponseText());
        }
    }
    Для сообщений типа MO Twilio работает так же, как TextMarks: они перенаправляются на URL обратного вызова, зарегистрированный в консоли администрирования, откуда пользователь получает ответ в формате HTTP. Например, если пользователь отправляет на мой виртуальный номер сообщение Hello World, то на мой зарегистрированный URL обратного вызова придет запрос HTTP GET следующего содержания:
    Code:
    http://my.callback.com/process?
        From=5125551234&To=3215554567&Body=Hello+World
    Обратите внимание, что в вызове Twilio есть параметр To, который определяет виртуальный номер получателя сообщения. Это необходимо потому, что на одну учетную запись Twilio можно зарегистрировать несколько виртуальных номеров. Мой сервлет, находящийся по URL обратного вызова, может обработать входящее сообщение и сгенерировать ответ.


    А как насчет MMS?


    Пока все услуги, которые мы рассмотрели, за исключением MMS-шлюза электронной почты, относились к взаимодействию посредством SMS. MMS гораздо сложнее, чем SMS, потому что контент нужно адаптировать для каждого телефона и каждого оператора. У каждого устройства свое разрешение экрана и свой видеоформат, и каждая сеть налагает собственные ограничения по максимальному размеру сообщений.

    Даже Twitter начал поддерживать MMS для отдельных операторов в США лишь в сентябре 2011 – спустя годы после того, как SMS-сервис этой компании приобрел всемирную популярность.

    К счастью, новые компании, такие как Hook Mobile, разрабатывают и продвигают новые Web-службы, поддерживающие MMS-сообщения между разными операторами связи. API MMS от Hook Mobile пока не открыт для широкой публики (нужно зарегистрироваться в качестве партнера), но это, безусловно, интересное направление!

    Для пользователей смартфонов push- сообщения составляют привлекательную альтернативу MMS, поэтому в следующей статье я остановлюсь на методе push.


    10.08.2012
    Майкл Юань, автор, аналитик и разработчик, независимый
    http://www.ibm.com/developerworks/ru/library/mo-sms-web/
    http://www.ibm.com/developerworks/opensource/library/mo-sms-web/index.html?S_TACT=105AGX99&S_CMP=CP
     
    _________________________
  2. tmp

    tmp Banned

    Joined:
    10 Mar 2005
    Messages:
    417
    Likes Received:
    32
    Reputations:
    1
    Майкл Юань, когда писал статью, наверно и не думал, что есть страны в которых публичные шлюзы операторы закроют. :D Когда надо была необходимость на одном сайте создать СМС оповещение , вспомнил как лет 10 назад такое делал. Начал искать инфу о шлюзах... и офигел, в УКраине практически все операторы закрыли шлюзы. И на платной основе предоставляют уведомление о приходе мыла на СМС.
     
  3. Sharp.Net

    Sharp.Net New Member

    Joined:
    28 Jul 2012
    Messages:
    39
    Likes Received:
    3
    Reputations:
    1
    Fatal error: Call to undefined method ConfController::goto() in /opt/www/html/app.ringful.com/app/group/app/controllers/conf_controller.php on line 16
     
  4. geek

    geek New Member

    Joined:
    9 Aug 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    !

    Интересно, но бестолково! Ведь правда все ограниченно! :mad:
     
Loading...