API для отправки SMS сообщений

В данном форуме описаны все API, поддерживаемые нашими услугами.

Re: API для отправки SMS сообщений

Сообщение sd » 29 дек 2012, 14:07

donexpress_premium писал(а):Супер! Спасибо, все работает. Мы не занимаемся рекламными рассылками, тем более - фишинговыми.
Кстати как идея - создайте blacklist отправителей, т.е. имена отправителей - которые являются потенциально склонные к злоупотреблениям: 900 (сбербанк), sberbank и т.д. соответственно, которые нельзя установить никому кроме настоящих представителей. Так же чтобы один ваш клиент не мог представится другим... это уж как "прожиточный минимум".

С черным списком пока никак - нужен источник данных для списка. Ну и слишком большой список тоже не есть хорошо - это как никак доп.нагрузка при отправке.
Текущий вариант нас пока что устраивает в той или иной степени. Единственное, что надо действительно сделать - при предоставлении документов и подписании доп.договора (?) разрешать пользователю устанавливать произвольные SenderID.
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: API для отправки SMS сообщений

Сообщение malec » 12 янв 2013, 00:17

Что касаемо VB.NET
Кодируем следующие символы:
+ ! * ( ) '

Результат на платформе .Net 4.5 (Web.HttpUtility.UrlEncode)
%2b+!+*+(+)+%27
Результат на платформе .Net 3.5 sp1 (Web.HttpUtility.UrlEncode)
%2b+!+*+(+)+'


Результат на платформе .Net 4.5 (Uri.EscapeDataString)
%2B%20%21%20%2A%20%28%20%29%20%27
Результат на платформе .Net 3.5 sp1 (Uri.EscapeDataString)
%2B%20!%20*%20(%20)%20'


Хотя является верным только:
%2B+%21+%2A+%28+%29+%27

Разные результаты связаны разными стандартами кодирования, в .Net 3.5 использовался один стандарт RFC 2396 а в 4.5 используется более новый RFC 3986
Пример ниже решает данную проблему.

Поэтому нет не какой разницы между Web.HttpUtility.UrlEncode и Uri.EscapeDataString
единственное что Uri.EscapeDataString не требует добавление ссылки на библиотеку System Web

А что б все же привести код в правильный вид нужно юзать Replace. Вот к примеру:
Код: Выделить всё
TextBox2.Text = Uri.EscapeDataString(TextBox1.Text).Replace("%20", "+").Replace("!", "%21").Replace("*", "%2A").Replace("(", "%28").Replace(")", "%29").Replace("'", "%27")

Вместо Uri.EscapeDataString так же можно юзать Web.HttpUtility.UrlEncode (ток добавьте ссылку)

P.S. Регистр текста сохраняется полностью без костылей.
P.S. 2 - что бы дальше не раздувать данный топик предлагаю администрации создать подраздел в разделе API для программистов.
Изображение
Аватара пользователя
malec
 
Сообщения: 47
Зарегистрирован: 17 янв 2012, 18:19

Re: API для отправки SMS сообщений

Сообщение antonionv » 25 янв 2013, 17:32

Интеграция с wordpress
antonionv
 
Сообщения: 1
Зарегистрирован: 01 дек 2012, 19:41

Re: API для отправки SMS сообщений

Сообщение malec » 27 янв 2013, 14:57

antonionv писал(а):Интеграция с wordpress

Как плагин на WP еще не кем не было опубликовано, но если Вы будете первым то многие Вам будут благодарны :)
А так, много примеров PHP
Изображение
Аватара пользователя
malec
 
Сообщения: 47
Зарегистрирован: 17 янв 2012, 18:19

Re: API для отправки SMS сообщений

Сообщение mittorn » 31 янв 2013, 16:00

Если пригодится - вот страница для отправки сообщений через javascript.
http://pastebin.com/J1Ag3uXp
Статус был сделан по старому api и не работает. Возможно, не работают некоторые символы.
mittorn
 
Сообщения: 14
Зарегистрирован: 10 мар 2012, 18:36

Re: API для отправки SMS сообщений

Сообщение DeSalittoMain » 13 фев 2013, 18:09

Доброго времени суток!

Если нетрудно - уточните, плиз, пару тонких моментов...

С одиночными сообщениями via API, в принципе, все понятно.
Вторая задача, из тех, что возникли - организовать рассылку текста по собственной базе номеров. Количество - от 500 и выше.
Соответственно, насколько понял, есть 2 варианта:
1) последовательный перебор своей базы и формирование отдельного вызова по каждой записи
2) использование и передача файла с номерами и текстом.

По первому сценарию, насколько понял, при использовании "шустрых" алгоритмов и компьютера, есть шанс попасть в блокировку. Как вариант - использовать задержки, а для компенсации - несколько номеров в одном запросе. Возникает вопрос - сколько их там допустимо?

По второму - немного непонятен формат требующегося файла, необходимая кодировка текста в нем (1251, utf-8 и т.д), а также - конкретный способ указания этого файла в строке запроса...
sd писал(а):
[*]number - номер телефона получателя. Разрешается указывать несколько номеров, разделенных ";" или ","

[*]numfile - файл с номерами телефонов или с номерами телефонов и текстом сообщений. Этот параметр не должен участвовать в формировании подписи.

[*]message - Текстовое сообщение для отправки. Может быть пустым. В этом случае, текст сообщения будет браться из файла с номерами телефонов. Для action = send. В тексте сообщения разрешается использовать следующие переменные:

  • %CT_N% – имя получателя из адресной книги пользователя,
  • %CT_F% – фамилия получателя,
  • %CT_M% – отчество получателя,
  • %CT_FN% – отображаемое имя получателя,
  • %CT_COL_N% – номер колонки в текстовом файле, где N – номер от 1 (на данный момент еще не поддерживается).

Если несложно - можно привести конкретные примеры из серии "для блондинок"?
И, разумеется, порекомендовать один из двух способов, исходя из вводных...

Заранее благодарен!
P.S. Просто надо быстренько изваять, а никак не могу решить, каким способом лучше, плюс - то ли подвесить на сайте, то ли сделать автономную программу...
DeSalittoMain
 
Сообщения: 6
Зарегистрирован: 11 фев 2013, 21:53

Re: API для отправки SMS сообщений

Сообщение sd » 14 фев 2013, 07:07

Второй вариант - передача в одном запросе файле с номерами и текстом будет предпочтительнее. Файл желательно сразу формировать в кодировке utf-8 - так будет меньше проблем нараваться на проблемы :)
Файл должен быть в формате:

Код: Выделить всё
номер_телефона1;текст_сообщения1
номер_телефона2;текст_сообщения2


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

Кстати, если для всех номеров нужен один и тот же текст, то в файле достаточно указывать только номера телефонов без текста, например:

Код: Выделить всё
номер_телефона1
номер_телефона2


Что касается того, как указывать файл при обращении к API. Ну первым делом, запрос нужно делать HTTP POST'ом. При этом параметр с именем файле не должен участвовать в формировании подписи. Пример:

Код: Выделить всё
$params["username"] = "login";
$params["action"] = "send";
$params["numfile"] = "@./numbers_w_text.txt";

$urlparams = BuildUrlParamsWithSignature($params, "yourpassword", array('numfile')); // последний параметр массив параметров, которые не должны участвовать в формировании подписи. Она же добавляет к массиву параметр signature

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.comtube.ru/scripts/api/sms.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params); // в массиве уже есть параметр signature, при формировании которой не учитывался (был просто пропущен) параметр numfile
$data = curl_exec($ch);
curl_close($ch);


Пример, к сожалению, не проверял, но по он должен работать.
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: API для отправки SMS сообщений

Сообщение DeSalittoMain » 14 фев 2013, 10:45

Спасибо!
sd писал(а):Кстати, если для всех номеров нужен один и тот же текст, то в файле достаточно указывать только номера телефонов без текста, например:

Правильно ли я понял, что в этом случае текст идет, как и для одиночного варианта, в виде &message=UTF-8_encoded_string ?
DeSalittoMain
 
Сообщения: 6
Зарегистрирован: 11 фев 2013, 21:53

Re: API для отправки SMS сообщений

Сообщение malec » 14 фев 2013, 10:54

Использование тега с подстановкой имени пользователя - очень предпочтительно!
Ибо без имени пользователя или его письменного разрешения, Вас можно оштрафовать за незаконную рекламу. Сумма штрафа от 100000 до пол миллиона, в зависимости от тяжести.
Имя пользователя в сообщение решает все проблемы, ибо рассылка, предложение продажи, акции и т.п. не попадает под определение рекламы ;)
Изображение
Аватара пользователя
malec
 
Сообщения: 47
Зарегистрирован: 17 янв 2012, 18:19

Re: API для отправки SMS сообщений

Сообщение DeSalittoMain » 14 фев 2013, 11:42

malec писал(а):или его письменного разрешения,

А кто сказал, что его нет? ;)
Если это, конечно, мне адресовалось... А вообще, конечно, напоминание нелишнее для тех, кто собирается использовать...
DeSalittoMain
 
Сообщения: 6
Зарегистрирован: 11 фев 2013, 21:53

Пред.След.

Вернуться в API

Просмотр страницы «Кто сейчас на форуме COMTUBE»

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4