Я хочу: | Спрятать |
Если у вас есть необходимость в отправке СМС сообщения из вашей программы, то вы можете отправить следующие запросы на наш сервер.
Отправить один текст на один или несколько номеров, указанных через запятую:
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 | Имя отправителя (должно быть согласовано с администрацией). Если не заполнено, в качестве отправителя будет указан ваш отправитель по умолчанию. | |
time | Если вам нужна отложенная отправка, то укажите время отправки. Указывается в формате UNIX TIME (пример: 1280307978). Должно быть не больше 7 дней с момента подачи запроса. Если время меньше текущего времени, сообщение отправляется моментально. | |
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 под Windows. То знак \ перед знаками ? и & необходимо убрать.
curl -d "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 | Сообщение прочитано |
150 | Не может быть доставлено: не найден маршрут на данный номер |
200 | Неправильный api_id |
201 | Не хватает средств на лицевом счету |
202 | Неправильно указан номер телефона получателя, либо на него нет маршрута |
203 | Нет текста сообщения |
204 | Имя отправителя не согласовано с администрацией |
205 | Сообщение слишком длинное (превышает 8 СМС) |
206 | Будет превышен или уже превышен дневной лимит на отправку сообщений |
207 | На этот номер нет маршрута для доставки сообщений |
208 | Параметр time указан неправильно |
209 | Вы добавили этот номер (или один из номеров) в стоп-лист |
210 | Используется GET, где необходимо использовать POST |
211 | Метод не найден |
212 | Текст сообщения необходимо передать в кодировке UTF-8 (вы передали в другой кодировке) |
213 | Указано более 100 номеров в списке получателей |
220 | Сервис временно недоступен, попробуйте чуть позже |
230 | Превышен общий лимит количества сообщений на этот номер в день |
231 | Превышен лимит одинаковых сообщений на этот номер в минуту |
232 | Превышен лимит одинаковых сообщений на этот номер в день |
300 | Неправильный token (возможно истек срок действия, либо ваш IP изменился) |
301 | Неправильный api_id, либо логин/пароль |
302 | Пользователь авторизован, но аккаунт не подтвержден (пользователь не ввел код, присланный в регистрационной смс) |
303 | Код подтверждения неверен |
304 | Отправлено слишком много кодов подтверждения. Пожалуйста, повторите запрос позднее |
305 | Слишком много неверных вводов кода, повторите попытку позднее |
500 | Ошибка на сервере. Повторите запрос. |
901 | Callback: URL неверный (не начинается на http://) |
902 | Callback: Обработчик не найден (возможно был удален ранее) |
Последнее обновление: 10 Февраля 2019 в 14:29