Я хочу: | Спрятать |
Если у вас есть необходимость в отправке СМС сообщения из вашей программы, то вы можете отправить следующие запросы на наш сервер.
Отправить один текст на один или несколько номеров, указанных через запятую:
https://sms.ru/sms/send?api_id=[зарегистрируйтесь, чтобы получить api_id]&to=79255070602,74993221627&msg=hello+world&json=1
Отправить разный текст на разные номера:
https://sms.ru/sms/send?api_id=[зарегистрируйтесь, чтобы получить api_id]&to[79255070602]=hello+world&to[74993221627]=hello+world&json=1
При включенном параметре json=1:
{
"status": "OK", // Запрос выполнен успешно (нет ошибок в авторизации, проблем с отправителем, итд...)
"status_code": 100, // Успешный код выполнения
"sms": {
"79255070602": {
"status": "OK", // Возможные варианты: OK или ERROR.
"status_code": 100, // Успешный код выполнения, сообщение принято на отправку
"sms_id": "000000-10000000" // ID сообщения
},
"74993221627": {
"status": "ERROR",
"status_code": 207, // Код ошибки
"status_text": "На этот номер (или один из номеров) нельзя отправлять сообщения, либо указано более 100 номеров в списке получателей" // Описание ошибки
}
} ,
"balance": 4122.56 // Ваш баланс после отправки
}
Без json:
100 // запрос выполнен успешно
000000-10000000 // id первого сообщения
207 // код ошибки второго сообщения
balance=4122.56 // ваш баланс после отправки
Параметр | Обязательный | Описание |
---|---|---|
to | да | Номер телефона получателя (либо несколько номеров, через запятую — до 100 штук за один запрос). Вы также можете указать номера в виде массива to[номер получателя]=текст&to[номер получателя]=текст. Если вы указываете несколько номеров и один из них указан неверно, то вместо идентификатора сообщения в выдаче вы получите трехзначный код ошибки. Если вы отправляете более, чем на 10 номеров за раз, то рекомендуем параметр to передавать в теле запроса методом POST, а не в адресной строке. |
msg | да | Текст сообщения в кодировке UTF-8 |
json=1 | рекомендуется | Данный параметр вызывает ответ сервера в формате JSON, в котором предоставлено больше данных об отправленных сообщениях |
from | Имя отправителя (должно быть согласовано с администрацией). Если не заполнено, в качестве отправителя будет указан ваш отправитель по умолчанию. | |
ip | Если СМС сообщение отправляется в ответ на действия пользователя (например сообщение содержит код авторизации), то мы можем защитить вас на случай от действий злоумышленников, которые вынуждают вас отправлять много сообщений на один или разные номера (к примеру, регистрируясь много раз подряд на вашем сайте с одного IP адреса). В этом параметре вы можете передать нам IP адрес вашего пользователя (не сервера!), и, если мы заметим, что с этим IP связано большое количество сообщений, то мы их начнем блокировать (ограничение настраивается в разделе "Настройки"). | |
time | Если вам нужна отложенная отправка, то укажите время отправки. Указывается в формате UNIX TIME (пример: 1280307978). Должно быть не больше 2 месяцев с момента подачи запроса. Если время меньше текущего времени, сообщение отправляется моментально. | |
ttl | Срок жизни сообщения в минутах (от 1 до 1440). Если сообщение не доставится за этот период (к примеру, телефон абонента не в сети), то оно будет уничтожено оператором. Если используется этот параметр, то стоимость недоставленного сообщения не компенсируется. | |
daytime=1 | Учитывает часовой пояс получателя. Если у получателя сейчас ночь (уже наступило время 20:00), то откладывает отправку до 10 часов утра. Если указан этот параметр, то параметр time игнорируется. | |
translit=1 | Переводит все русские символы в латинские. | |
test=1 | Имитирует отправку сообщения для тестирования ваших программ на правильность обработки ответов сервера. При этом само сообщение не отправляется и баланс не расходуется. | |
partner_id= | Если вы участвуете в партнерской программе, укажите этот параметр в запросе и получайте проценты от стоимости отправленных сообщений. Ваш уникальный идентификатор - - уже указан в параметре. |
Авторизация осуществляется при помощи:
Параметр | Обязательный | Описание |
---|---|---|
api_id | да | Авторизацию по вашему уникальному ключу (api_id). Этот способ авторизации - самый удобный и приведен в примере выше. Ваш api_id вы можете найти на главной странице личного кабинета: [зарегистрируйтесь, чтобы получить api_id] |
или
Параметр | Обязательный | Описание |
---|---|---|
login | да | Ваш номер телефона (логин): 79255070602 |
password | да | Пароль (безопасность гарантируется при использовании https) |
Мы настоятельно рекомендуем использовать нашу библиотеку под PHP. Данный код указан только в качестве простого примера.
$ch = curl_init("https://sms.ru/sms/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
"api_id" => "[зарегистрируйтесь, чтобы получить api_id]",
"to" => "79255070602,74993221627", // До 100 штук до раз
"msg" => iconv("windows-1251", "utf-8", "Привет!"), // Если приходят крякозябры, то уберите iconv и оставьте только "Привет!",
/*
// Если вы хотите отправлять разные тексты на разные номера, воспользуйтесь этим кодом. В этом случае to и msg нужно убрать.
"multi" => array( // до 100 штук за раз
"79255070602"=> iconv("windows-1251", "utf-8", "Привет 1"), // Если приходят крякозябры, то уберите iconv и оставьте только "Привет!",
"74993221627"=> iconv("windows-1251", "utf-8", "Привет 2")
),
*/
"json" => 1 // Для получения более развернутого ответа от сервера
)));
$body = curl_exec($ch);
curl_close($ch);
$json = json_decode($body);
if ($json) { // Получен ответ от сервера
print_r($json); // Для дебага
if ($json->status == "OK") { // Запрос выполнился
foreach ($json->sms as $phone => $data) { // Перебираем массив СМС сообщений
if ($data->status == "OK") { // Сообщение отправлено
echo "Сообщение на номер $phone успешно отправлено. ";
echo "ID сообщения: $data->sms_id. ";
echo "";
} else { // Ошибка в отправке
echo "Сообщение на номер $phone не отправлено. ";
echo "Код ошибки: $data->status_code. ";
echo "Текст ошибки: $data->status_text. ";
echo "";
}
}
echo "Баланс после отправки: $json->balance руб.";
echo "";
} else { // Запрос не выполнился (возможно ошибка авторизации, параметрах, итд...)
echo "Запрос не выполнился. ";
echo "Код ошибки: $json->status_code. ";
echo "Текст ошибки: $json->status_text. ";
}
} else {
echo "Запрос не выполнился. Не удалось установить связь с сервером. ";
}
Мы настоятельно рекомендуем использовать нашу библиотеку под PHP. Данный код указан только в качестве простого примера.
$body = file_get_contents("https://sms.ru/sms/send?api_id=[зарегистрируйтесь, чтобы получить api_id]&to=79255070602&msg=".urlencode(iconv("windows-1251","utf-8","Привет!"))."&json=1"); # Если приходят крякозябры, то уберите iconv и оставьте только urlencode("Привет!")
$json = json_decode($body);
print_r($json); // Для дебага
// Для разбора $json можно использовать кусок кода из предыдущего примера.
#!/usr/bin/perl
use LWP::Simple;
use HTTP::Request::Common qw(POST);
$ua = LWP::UserAgent->new;
my $req = POST 'https://sms.ru/sms/send',
[
api_id => '[зарегистрируйтесь, чтобы получить api_id]',
to => '79255070602',
msg => 'hello world'
];
print $ua->request($req)->as_string;
curl --data-urlencode msg="hello world привет мир" "https://sms.ru/sms/send?api_id=[зарегистрируйтесь, чтобы получить api_id]&to=79255070602"
Код | Значение |
---|---|
-1 | Сообщение не найдено |
100 | Запрос выполнен или сообщение находится в нашей очереди |
101 | Сообщение передается оператору |
102 | Сообщение отправлено (в пути) |
103 | Сообщение доставлено |
104 | Не может быть доставлено: время жизни истекло |
105 | Не может быть доставлено: удалено оператором |
106 | Не может быть доставлено: сбой в телефоне |
107 | Не может быть доставлено: неизвестная причина |
108 | Не может быть доставлено: отклонено |
110 | Сообщение прочитано (для Viber, временно не работает) |
150 | Не может быть доставлено: не найден маршрут на данный номер |
200 | Неправильный api_id |
201 | Не хватает средств на лицевом счету |
202 | Неправильно указан номер телефона получателя, либо на него нет маршрута |
203 | Нет текста сообщения |
204 | Вы не подключили данного оператора. Подайте заявку через раздел Отправители на сайте SMS.RU - https://sms.ru/?panel=senders |
205 | Сообщение слишком длинное (превышает 8 СМС) |
206 | Будет превышен или уже превышен дневной лимит на отправку сообщений |
207 | На этот номер нет маршрута для доставки сообщений |
208 | Параметр time указан неправильно |
209 | Вы добавили этот номер (или один из номеров) в стоп-лист |
210 | Используется GET, где необходимо использовать POST |
211 | Метод не найден |
212 | Текст сообщения необходимо передать в кодировке UTF-8 (вы передали в другой кодировке) |
213 | Указано более 5000 номеров в списке получателей |
214 | Номер находится зарубежом (включена настройка "Отправлять только на номера РФ") |
215 | Этот номер находится в стоп-листе SMS.RU (от получателя поступала жалоба на спам) |
216 | В тексте сообщения содержится запрещенное слово |
220 | Сервис временно недоступен, попробуйте чуть позже |
230 | Превышен общий лимит количества сообщений на этот номер в день |
231 | Превышен лимит одинаковых сообщений на этот номер в минуту |
232 | Превышен лимит одинаковых сообщений на этот номер в день |
233 | Превышен лимит отправки повторных сообщений с кодом на этот номер за короткий промежуток времени ("защита от мошенников", можно отключить в разделе "Настройки") |
300 | Неправильный token (возможно истек срок действия, либо ваш IP изменился) |
301 | Неправильный api_id, либо логин/пароль |
302 | Пользователь авторизован, но аккаунт не подтвержден (пользователь не ввел код, присланный в регистрационной смс) |
303 | Код подтверждения неверен |
304 | Отправлено слишком много кодов подтверждения. Пожалуйста, повторите запрос позднее |
305 | Слишком много неверных вводов кода, повторите попытку позднее |
500 | Ошибка на сервере. Повторите запрос. |
501 | Превышен лимит: IP пользователя из сети TOR, слишком много таких сообщений за короткий промежуток времени (можно настроить в ЛК). |
502 | Превышен лимит: IP пользователя не совпадает с его страной, слишком много таких сообщений за короткий промежуток времени (можно настроить в ЛК). |
503 | Превышен лимит: Слишком много сообщений в эту страну за короткий промежуток времени (можно настроить в ЛК). |
504 | Превышен лимит: Слишком много кодов авторизаций зарубеж за короткий промежуток времени (можно настроить в ЛК). |
505 | Превышен лимит: Слишком много сообщений на один IP адрес (можно настроить в ЛК). |
506 | Превышен лимит: Слишком много сообщений, где IP адрес конечного пользователя принадлежит хостинговой компании (%s за последние 10 минут). Обычно это указывает на то, что запросы идут от ботов, а не пользователей. |
507 | IP адрес пользователя указан неверно, либо идет из частной подсети (192.*, 10.*, итд). Вы можете добавить его (или подсеть) в исключения - https://sms.ru/?panel=settings&subpanel=send |
508 | Превышен лимит: Превышено количество допустимых звонков за 5 минут (принято запросов на звонки - %s, лимит - %s). Изменить настройку - https://sms.ru/?panel=settings&subpanel=send |
901 | Callback: URL неверный (не начинается на http://) |
902 | Callback: Обработчик не найден (возможно был удален ранее) |
Последнее обновление: 05 Апреля 2024 в 18:07