- Смс уведомления для формы на сайте
- Пример HTML кода формы с поддержкой смс уведомлений
- Пример скрипта обработчика формы для отправки смс уведомления
- Создаем бесплатный callback-виджет с SMS и Telegram-оповещением
- Зачем нужен callback-виджет?
- Разметка HTML + CSS
- the new code
- projects
- books
- Send a SMS Text From A Link
- A Note On Privacy
- Challenges
- Как отправлять SMS-уведомления и оповещения с помощью JavaScript и Node.js
- Реальный пример
Смс уведомления для формы на сайте
Для настройки смс уведомлений для сайта Вам необходимо зарегистрироваться у нас на сайте, передать вашему вебмастеру логин и пароль и ссылку на пример скрипта на php для отправки смс уведомления.
В 90% случаев смс уведомления привязаны к работе с формой на сайте. Ваш пользователь заполняет форму на сайте и во время обработки данных с формы также формируется и отправляется sms уведомление.
Ниже показан пример текста формы (form.php), которая методом POST передает данные скрипту обработчику формы(action.php). В тексте кода присутствуют необходимые комментарии. Вы можете протестировать работу примера формы скачав архив с файлами form.php и action.php
Для тестирования необходимо скачать архив и скопировать файлы из него в папку на вашем сайте. Затем в файле action.php в 4 и 6 строке прописать логин и пароль, которые Вы используете для доступа в личный кабинет smsfeedback.ru. Если у Вас у же есть одобренная смс подпись, то Вы можете прописать ее в 23 строке, заменив TEST-SMS на нужную подпись.
Если у Вас возникнут вопросы по настройке уведомления на сайте, то мы c радостью ответим на все вопросы
Пример HTML кода формы с поддержкой смс уведомлений
Пример скрипта обработчика формы для отправки смс уведомления
С уважением,
Команда SMSfeedback
Создаем бесплатный callback-виджет с SMS и Telegram-оповещением
В этой статье мы пошагово создадим виджет обратного звонка с красивой минималистичной анимацией и отправкой уведомлений на почту, на свой номер телефона и в мессенджер Telegram через бота. Виджет подойдет абсолютно для любого сайта на HTML или на любой CMS.
Демонстрацию можно посмотреть по ссылке.
Зачем нужен callback-виджет?
Есть масса сервисов, которые предоставляют различные настраиваемые виджеты обратного звонка — с возможностью подключить АТС, интегрировать с CRM (amoCRM, Битрикс24), с оповещением в Telegram, по СМС и так далее. За такой богатый функционал нужно платить ежемесячно, покупать минуты или выбирать тариф по карману. Стоимость подобных виджетов стартует примерно от 200 рублей в месяц.
Используя виджет, о котором мы поговорим в этой статье, вы получите навечно бесплатное, независимое и настраиваемое под любые нужды решение — с возможностью отправки заявки на почту, в Telegram и по СМС. Также с помощью вебхуков можно подключить отправку данных в CRM (если есть такая возможность на стороне самой CRM).
Минус такого виджета – отсутствие возможности онлайн-звонка. Но, думаю, это не большой минус, а скорее плюс, так как часто менеджеры не успевают ответить на звонок, и компания получает негатив от потенциального клиента. А в случае с виджетом мы принимаем заявку, выводим сообщение о том, что перезвоним в течение определенного времени, и у клиента не возникает негатива. Поэтому минус виджета может быть и плюсом.
Итак, приступим к созданию виджета.
Разметка HTML + CSS
Вам перезвонить?Оставьте свой телефон и мы свяжемся с вами ">
Так как виджет «сквозной» и устанавливается на все страницы, нам необходимо понимать, с какой страницы был заказан обратный звонок, чтобы оперативно помочь клиенту. Для этого нам понадобится скрытое поле в форме, которое будет передавать эту страницу, значение поле должно быть таким:
Если у вас одностраничный сайт или несколько страниц на HTML, измените расширение файла с .html на .php. Если устанавливаете на CMS , то все в порядке.
Второе скрытое поле будет передавать тему заявки — в данном случае это «Обратный звонок».
Теперь добавим небольшой скрипт открытия формы по клику на кнопку. Для этого нам понадобится подключить библиотеку jQuery и написать небольшой скрипт отправки. Если у вас уже подключена библиотека, то этого делать не стоит.
Далее оформим все с помощью CSS. Вы можете добавить этот код в свой файл стилей или создать новый.
body < margin: 0; padding: 0; >.widget-callback < font-family: sans-serif; font-size: 14px; >.widget-callback>div < -webkit-tap-highlight-color: rgba(0, 0, 0, 0); >.widget-callback input < outline: none !important >.widget-callback .callback-button < position: absolute; right: 60px; bottom: 30px; >.widget-callback .callback-button-title < position: absolute; left: -150px; top: 16px; background: rgba(41, 41, 41, 0.75); color: #fff; padding: 6px 10px; border-radius: 3px; >.widget-callback.widget-callback-form-open .callback-button-title < display: none; >.widget-callback .callback-button-title:before < content: ''; position: absolute; width: 0; height: 0; border: solid transparent; border-width: 6px; top: 50%; right: -12px; transform: translateY(-50%); border-left-color: rgba(41, 41, 41, 0.75); >.widget-callback .callback-button-phone < width: 60px; height: 60px; display: block; background: #199c68; border-radius: 50%; position: relative; cursor: pointer; animation: 1200ms ease 0s normal none 1 running shake; animation-iteration-count: infinite; -webkit-animation: 1200ms ease 0s normal none 1 running shake; -webkit-animation-iteration-count: infinite; >.widget-callback.widget-callback-form-open .callback-button-phone < animation: unset; -webkit-animation: unset; background: #ddd; >.widget-callback .callback-button-phone:before < content: ''; background: url(call.svg); background-size: contain; position: absolute; display: block; width: 24px; height: 24px; left: 50%; top: 50%; margin: -12px 0 0 -12px; transform: scale(1); -webkit-transition: all 0.2s linear; transition: all 0.2s linear; >.widget-callback .callback-button-phone:after < content: ''; background: url(cancel.svg); background-size: contain; position: absolute; display: block; width: 24px; height: 24px; left: 50%; top: 50%; margin: -12px 0 0 -12px; transform: scale(0); -webkit-transition: all 0.2s linear; transition: all 0.2s linear; >.widget-callback.widget-callback-form-open .callback-button-phone:before < content: ''; transform: scale(0); >.widget-callback.widget-callback-form-open .callback-button-phone:after < content: ''; transform: scale(1); >.widget-callback .callback-form < display: none; background: #fff; border: 1px solid #f9f9f9; width: 240px; border-radius: 5px; padding: 30px 15px; right: 60px; bottom: 110px; position: absolute; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.08); >.widget-callback.widget-callback-form-open .callback-form < display: block; animation: formcbwg-in 0.1s ease; >@keyframes formcbwg-in < 0% < transform: translateY(15%); >100% < transform: translateY(0%); >> @keyframes formcbwg-out < 0% < transform: translateY(0%); >100% < transform: translateY(15%); >> .widget-callback .callback-form-title < text-align: center; display: block; margin: 0 0 30px; >.widget-callback input < width: 100%; box-sizing: border-box; padding: 15px; margin: 0 0 10px; border: 1px solid #ebebeb; border-radius: 3px; font-size: 16px; >.widget-callback input[type="submit"] < background: #199c68; color: #fff; text-transform: uppercase; font-size: 14px; border: none; cursor: pointer; >.widget-callback .success-send < text-align: center; >.widget-callback .success-send img < width: 60px; margin: 0 0 20px; >@media (max-width: 600px) < .widget-callback .callback-button < right: 30px; bottom: 30px; >.widget-callback .callback-form < width: 80%; right: 10%; box-sizing: border-box; >> @keyframes shake < 0% < transform: rotateZ(0deg); -ms-transform: rotateZ(0deg); -webkit-transform: rotateZ(0deg); >10% < transform: rotateZ(-30deg); -ms-transform: rotateZ(-30deg); -webkit-transform: rotateZ(-30deg); >20% < transform: rotateZ(15deg); -ms-transform: rotateZ(15deg); -webkit-transform: rotateZ(15deg); >30% < transform: rotateZ(-10deg); -ms-transform: rotateZ(-10deg); -webkit-transform: rotateZ(-10deg); >40% < transform: rotateZ(7.5deg); -ms-transform: rotateZ(7.5deg); -webkit-transform: rotateZ(7.5deg); >50% < transform: rotateZ(-6deg); -ms-transform: rotateZ(-6deg); -webkit-transform: rotateZ(-6deg); >60% < transform: rotateZ(5deg); -ms-transform: rotateZ(5deg); -webkit-transform: rotateZ(5deg); >70% < transform: rotateZ(-4.28571deg); -ms-transform: rotateZ(-4.28571deg); -webkit-transform: rotateZ(-4.28571deg); >80% < transform: rotateZ(3.75deg); -ms-transform: rotateZ(3.75deg); -webkit-transform: rotateZ(3.75deg); >90% < transform: rotateZ(-3.33333deg); -ms-transform: rotateZ(-3.33333deg); -webkit-transform: rotateZ(-3.33333deg); >100% < transform: rotateZ(0deg); -ms-transform: rotateZ(0deg); -webkit-transform: rotateZ(0deg); >> @-webkit-keyframes shake < 0% < transform: rotateZ(0deg); -ms-transform: rotateZ(0deg); -webkit-transform: rotateZ(0deg); >10% < transform: rotateZ(-30deg); -ms-transform: rotateZ(-30deg); -webkit-transform: rotateZ(-30deg); >20% < transform: rotateZ(15deg); -ms-transform: rotateZ(15deg); -webkit-transform: rotateZ(15deg); >30% < transform: rotateZ(-10deg); -ms-transform: rotateZ(-10deg); -webkit-transform: rotateZ(-10deg); >40% < transform: rotateZ(7.5deg); -ms-transform: rotateZ(7.5deg); -webkit-transform: rotateZ(7.5deg); >50% < transform: rotateZ(-6deg); -ms-transform: rotateZ(-6deg); -webkit-transform: rotateZ(-6deg); >60% < transform: rotateZ(5deg); -ms-transform: rotateZ(5deg); -webkit-transform: rotateZ(5deg); >70% < transform: rotateZ(-4.28571deg); -ms-transform: rotateZ(-4.28571deg); -webkit-transform: rotateZ(-4.28571deg); >80% < transform: rotateZ(3.75deg); -ms-transform: rotateZ(3.75deg); -webkit-transform: rotateZ(3.75deg); >90% < transform: rotateZ(-3.33333deg); -ms-transform: rotateZ(-3.33333deg); -webkit-transform: rotateZ(-3.33333deg); >100% < transform: rotateZ(0deg); -ms-transform: rotateZ(0deg); -webkit-transform: rotateZ(0deg); >>
the new code
To receive more information, including news, updates, and tips, follow me on Twitter or add me on Google+.
This site helps millions of visitors while remaining ad-free. For less than the price of a cup of coffee, you can help pay for bandwidth and server costs while encouraging further articles.
projects
A Sass color keyword system for designers. Replaces CSS defaults with improved hues and more memorable, relevant color names.
An auto-generated #RWD image slider. 3.8K of JS, no JQuery. Drop in images, add a line of CSS. Done.
Massive Head Canon. Intelligent discussion of movies, books, games, and technology.
books
Send a SMS Text From A Link
While tags are most often used to link pages, most developers are aware that they can prompt an eMail by using the mailto: protocol. Few developers are aware that it’s also possible to initiate a phone call from a web page using tel: , and almost no-one is aware that you can do the same thing with SMS messages.
The basic format of the link is very simple:
Some systems (Android, Symbian, webOS) don’t allow a number, to avoid potentially expensive overages on international messages.
Finally, a precomposed (and percent encoded) message can be included in the link, at least for some systems:
If you’re on a supported mobile platform, you can try clicking this link: Send a SMS. The number is in a fictional Hollywood movie area code, so it won’t actually send a message to anyone.
A Note On Privacy
It’s worth pointing out that a sent SMS message will share the user’s phone number; the site’s use of this information should be addressed in a separate privacy statement.
Challenges
You can’t use connection type or screen size to determine if your site is communicating to a mobile phone with any kind of predictability. Currently, the only reliable method is device detection, via a system like WURFL or PHP mobile detect. With that in place, you could wrap the link in context-aware code:
Further detection refinement would allow you to customize the SMS link feature for different phone systems.
Enjoy this piece? I invite you to follow me at twitter.com/dudleystorey to learn more.
Как отправлять SMS-уведомления и оповещения с помощью JavaScript и Node.js
Вы говорите, что у вас есть отличная идея для приложения, и все, что вам нужно, это набор инструментов, который поможет вам добавить в него возможности текстовых сообщений?
Возможно, вы отправляете уведомления о доставке или используете текстовые сообщения для двухфакторной аутентификации, или вы просто хотите использовать текстовые сообщения в своих маркетинговых кампаниях.
Вам повезло, потому что вы можете легко добавить возможность отправлять и получать текстовые сообщения с помощью платформы облачных коммуникаций.
Коммуникационная платформа как услуга (CPaaS) предоставляет API, которые вы можете вызывать из своих программ.
На серверной части эти API-интерфейсы подключаются к телекоммуникационной сети для обмена SMS-сообщениями, а также для совершения и приема голосовых вызовов. Используя CPaaS, разработчики ограждены от сложностей телекоммуникационной инфраструктуры; они могут сосредоточиться на улучшении своих приложений.
Реальный пример
Чтобы увидеть, как это работает, давайте рассмотрим точный процесс, который вы можете использовать как разработчик.
Платформы CPaaS предоставляют комплекты для разработки программного обеспечения (SDK), упрощающие использование их сервисов на различных языках — Python, PHP, Java и других. Мы будем использовать JavaScript и Node.js.
Для нашего CPaaS мы выбрали Plivo, сервис, который возглавляет сайт экспертной оценки G2 Список CPaaS для удовлетворения потребностей клиентов. Чтобы использовать Plivo (или любую CPaaS), у вас должна быть учетная запись. Plivo позволяет вам зарегистрироваться бесплатно и предоставляет кредиты на использование, чтобы вы могли писать тестовые приложения.
Вам также необходимо зарезервировать номер телефона для отправки сообщений, что можно сделать несколькими щелчками мыши в консоли управления Plivo.
Поскольку вы читаете эту статью, я предполагаю, что вы уже знакомы с JavaScript и Node.js. Plivo предоставляет Node.js SDK, который прост в установке. Как только вы это сделаете, добавление текстовых уведомлений в вашу программу будет состоять всего из нескольких строк кода.
var plivo = требуется(‘plivo’);