Создаем SMS извещения. Бесплатные

Наверняка в вашем мобильном телефоне есть куча подписок по sms от вашего провайдера (оператора). Например, вы можете подписаться на ежедневное извещение по sms о курсе валют, о погоде в вашем городе и т.д. Разумеется, провайдер будет изымать с вас определенную плату за использование услуги. Безусловно, такого рода услуга, в зависимости от  ее потребности, очень полезная вещь в особых случаях. Но платить за нее совсем не обязательно! Более того, вы можете отправлять на свой телефон посредством sms любую нужную вам информацию, 24 часа в сутки, 7 дней в неделю, 365 дней в году. Повторюсь: совершенно бесплатно! Под совершенно бесплатно подразумевается ваше стремление это сделать, наличие хостинга с php и следование советам, которые я изложу ниже.

Зачем нужны SMS извещения?

Использование sms извещений очень полезная штука. По сути вы автоматизируете процесс слежения вами за определенного рода информацией. Когда, зачем и кому это может быть полезно? Практически всем, широта ее применения не ограничивается какими- либо рамками, а пожалуй лишь стандартным размером sms. Давайте пофантазируем, что можно посылать по sms для извещения пользователя:

По смс на телефон можно отправить:

  • прогноз погоды
  • курс валют
  • извещение о покупке в вашем магазине
  • счетчик посещений на вашем сайте
  • посылать себе анекдот
  • точное время...

Надеюсь, вы поняли, что сфера применения очень разнообразна и что  такая функция может быть очень полезной и востребованной. Например, представьте себе ситуацию, что вы отправляетесь на отдых или за границу, доступа к интернету нет, а получать статистику, например, покупок в вашем магазине очень и очень хочется (если там не реализована функция sms извещений). Или, например, ближе к вечеру вы хотите знать прогноз погоды на следующий день в своем городе, но доступа к интернету нет или нет желания искать такую информацию на сайтах - вы хотите получать ее автоматически и регулярно. Эти задачи решаются легко. Настроил один раз - пользуйся на здоровье!

 SMS извещения. Как это работает? Теория

Как же все это реализовать, притом халявно? И как все это работает и за счет чего?

В сети работает уйма контор по отправке платных смс (надо сказать, что их стоимость будет намного дешевле чем вы отправляете смс со своего телефона через своего провайдера, поэтому если у вас есть доступ к интернету и есть желание экономить на отправке смс, то вам стоит обратить внимание на такие сервисы). Используются такие конторы для разных целей. Например, для sms извещения компанией своих сотрудников, для массовых sms рассылок узкому кругу людей, кто-то даже ухитряется использовать такие сервисы для sms-спама.

Достоинств у таких sms сервисов много. Наиболее впечатляет - возможность подмены номера. Вы можете указать отправителем по сути любой номер или любой ник. Нас же интересует возможность использования таких сервисов для собственных и притом бесплатных sms извещений. Так вот, существуют конторы, которые предоставляют часть своих услуг или урезанные услуги совершенно бесплатно. Например, отправка sms сообщений на свой личный номер в пределах 60 штук ежедневно... бесплатно! Разве нам не это нужно?

 SMS извещения. Переходим к практике

Жмем зеленый буттон и регистрируемся в сервисе по отправке sms. Обязательно указываем свой рабочий мобильный телефон или тот телефон, на который намерены в дальнейшем отправлять sms извещения (нам потребуется активация этого номера телефона посредством sms). knopka-reg После регистрации, нажимаем кнопочку "ПРОГРАММИСТАМ": здесь находим готовые классы на различных языках программирования для автоматизации своих действий по отправке SMS. Если вы более менее знакомы с языками программирования, то смело можете брать заготовки на сайте для своих конкретных нужд и использовать их по назначению. Если нужен простейший пример для понимания принципа работы, то читаем далее.

В той же вкладке "ПРОГРАММИСТАМ" мы видим ссылочку "Отправить СМС сообщение HTTP запросом", а в ней строчку вида:

http://sms.ru/sms/send?api_id=00000-0000-0000-000&to=79251001010&text=hello+world

Первое красное число - ваш уникальный api_id (не сообщайте его никому), чтобы его увидеть, перейдите в меню - "ПРОГРАММИСТАМ" - СМЕНИТЬ api_id.

smru

Второе число в строчке это ваш номер телефона (обратите внимание на отсутствие плюса). Помните, на ваш номер телефона (который вы указали при регистрации) sms будут приходить бесплатно. Если вы желаете отослать sms на другой номер, то потребуется пополнение баланса. Итак, если мы наберем в браузере нашу строчку:

http://sms.ru/sms/send?api_id=00000-0000-0000-000&to=79251001010&text=hello+world

то к своему удивлению, молниеносно получим на свой телефон смс с содержанием: hello world

Как видите, все очень просто. Чтобы полнее понять принцип работы, пишем простейший скрипт. Открываем текстовый блокнот и пишем что-то типа этого:

$sms="параметр";
$sms = str_replace(' ','+', $sms);
$url2="http://sms.ru/sms/send?api_id=00000-0000-0000-000&to=79251001010&text=$sms";
$body=file_get_contents($url2);

Сохраняем текстовый файл с расширением php (подкорректировав нужные параметры) в кодировке utf-8, загружаем его на сервер и набираем в браузере: http://ваш-сайт.ру/имя файла какой нибудь длинное и непонятное.php. СМС со словом "параметр" опять получили на свой телефон. Какая прелесть!

А дальше уже сложнее. Вам нужно определиться, что вы будете отправлять (первая строчка)? И как вы будете отправлять (каким образом запустится скрипт на сервере)?

Что отправлять в SMS?

Информация отправляемая в sms на телефон содержится в нашем скрипте в строчке $sms="параметр"; В нее можно подставить какую угодно текстовую информацию длиной стандартного sms: 153-160 латинских символов или 67-70 русскими буквами (вы можете за одним разом отправить и длиннее смс, они будут склеены в одно и число смс отнимется от общего лимита в день).

Что и как подставлять - это решать вам. Универсального решения здесь нет возможности привести, поскольку сфера применения описываемой нами функции весьма широка. Подскажу, что вам нужно научиться парсить нужную вам информацию с требуемого сайта и запихать ее в строчку $sms="параметр"; Что такое парсер на практике можно прочитать в моем материале - "Парсим контент к себе на сайт".

Как активировать запуск скрипта?

Собственно здесь есть два варианта:

  • скрипт отправки смс активируется автоматически при выполнении каких-то действий пользователем на сайте (например, после осуществления покупки в вашем магазине);
  • запуск скрипта по расписанию (здесь вам нужно иметь понятия о Cron - детально http://ru.wikipedia.org/wiki/Cron)

В обоих случаях скрипт работает автоматически, ваша задача правильно его настроить.  Скажу, что на практике для своих клиентов подключал sms-извещения (sms отправляется после удачной покупки клиентом услуги) для приема платежей Интеркасса (в самой системе они платные), настраивал ежедневный прогноз погоды для выбранного города и ежедневную статистику посещений с сайта по Cron.

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

Оцените материал:
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (2 голоса, рейтинг: 5,00 из 5)
Загрузка...

Вячеслав - типичный интернетчикВячеслав Скоблей (ака files) - типичный интернетчик. Скитаюсь интернетом, пишу на PHP, увлекаюсь созданием веб-сайтов на Wordpress, решаю многочисленные проблемы, которые до появления интернета не существовали...

Специализируюсь на безопасности сайтов: защищаю сайты от атак и взломов, занимаюсь лечением вирусов на сайтах и профилактикой...

Наверняка у Вас есть вопросы, просьбы или пожелания. Не стесняйтесь спросить, я отвечаю всегда быстро...

5 комментарий

  1. Сергей says:

    Здравствуйте, Вячеслав! У меня на тарифе 150 бесплатных смс в месяц. Как сделать так, чтобы присылались смс без регистрации на сторонних сервисах типа sms.ru? Зачем тратить деньги, если у меня их (смс) девать некуда? С уважением.

  2. ссылка на скрипт https://yadi.sk/d/lHA1CUfPrjJPj

  3. спасибо! все безотказно работает.там бесплатно 4 или 5 смс в сутки. этого хватает.
    на просторах интернета нарыл скрипт доступности сайта с смс,автор не отвечает.
    он все отлично работает,только доступный сайт пишет что не доступен.подскажите пожалуйста как сделать проверку по тайлу или код 200.сам скрипт
    [ 'http://сайт',

    ],
    'text' => [ 'Смотреть фильмы онлайн бесплатно в хорошем качестве, кино онлайн',

    ],
    ];

    foreach ($sites['url'] as $key => $value) {

    $result = get_web_page( $value );
    $curr_url = parse_url($value);

    if ( $result['errno'] != 0 )
    // если возникли ошибки
    return send_sms("Возникли ошибки на", $curr_url['host'], $api, $number);

    if ( $result['http_code'] != 200 )
    // если плохой ответ сервера
    return send_sms("Неверный ответ сервера на", $curr_url['host'], $api, $number);

    $page = strripos($result['content'], $sites['text'][$key]);;
    if ($page === false)
    // если текст не найден на странице
    return send_sms("Сайи упал ", $curr_url['host'], $api, $number);
    }
    function get_web_page( $url )
    {
    $user_agent='Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36';

    CURLOPT_CUSTOMREQUEST =>"GET", // GET или POST запрос
    CURLOPT_POST =>false, // откл. POST
    CURLOPT_USERAGENT => $user_agent, // изм. user agent
    CURLOPT_RETURNTRANSFER => true, // вернуть страницу
    CURLOPT_HEADER => false, // откл. заголовки
    CURLOPT_FOLLOWLOCATION => true, // следовать редиректам
    CURLOPT_CONNECTTIMEOUT => 7, // макс. время соединения с сервером
    CURLOPT_TIMEOUT => 7, // макс. время ответа
    );

    $ch = curl_init( $url );
    curl_setopt_array( $ch, $options );
    $content = curl_exec( $ch );
    $err = curl_errno( $ch );
    $errmsg = curl_error( $ch );
    $header = curl_getinfo( $ch );
    curl_close( $ch );

    $header['errno'] = $err;
    $header['errmsg'] = $errmsg;
    $header['content'] = $content;
    return $header;
    }

    function send_sms($text, $url, $api, $number) {
    // записываем ошибки в лог
    $file = 'error.txt';
    $current = @file_get_contents($file);
    $current .= date("d.m.Y H:i:s").": $text $url".PHP_EOL;
    file_put_contents($file, $current);

    // отправляем СМС, если прошло более 1 часа после последней СМС
    $sms_time = @file_get_contents("sms.txt");
    if ($sms_time == '' || time() - $sms_time > 360*360) {
    file_put_contents("sms.txt", time());
    $sms = @file_get_contents("http://sms.ru/sms/send?api_id=".$api."&to=".$number."&text=".urlencode($text." ".$url));
    }
    }
    ?>

  4. установил ваш скрипт http://seo-zona.ru/sozdaem-sms-informer-o-poseshhenii-sajta-2016-02-03.html
    Как мне передать, чтоб смс с отчетом яндекс метрики приходило с помощью http://seozona.sms.ru. помогите пожалуйста

    1. Вячеслав Скоблей says:

      вместо строчки:

      $mail = mail ('380001234567@sms.kyivstar.net','METRIKA',$mes,"Content-type:text/plain; charset = utf-8\r\n");

      пишем:

      $sms = str_replace(' ','+', $mes);
      $url2="http://sms.ru/sms/send?api_id=00000-0000-0000-000&to=79251001010&text=$sms";
      $body=file_get_contents($url2);

      где api_id - ваш id и 79251001010 - ваш телефон (из вашего личного кабинета)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *