Python API для сервиса отправки сообщений sms.ru
aiohttp
pip install smsru-api
Чтобы использовать скрипт, просто импортируйте его в свой код
import smsru_api
или импортируйте сам класс SmsRu()
from smsru_api import SmsRu
Для асинхронной работы есть класс AsyncSmsRu()
from smsru_api import AsyncSmsRu
Все методы асинхронного класса это корутины.
Классам SmsRu()
или AsyncSmsRu()
в параметры нужно передать ваш API ключ из личного кабинета
from smsru_api import SmsRu, AsyncSmsRu
sms_ru = SmsRu('Your API KEY')
async_sms_ru = AsyncSmsRu('Your API KEY')
Метод send()
отправляет ваше сообщение на номер(а) через sms.ru
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.send('9XXXXXXXX0', '9XXXXXXXX1', message='Message to sms')
{
"status": "OK",
"status_code": 100,
"sms": {
"79XXXXXXXX0": {
"status": "OK",
"status_code": 100,
"sms_id": "000000-10000000"
},
"79XXXXXXXX1": {
"status": "ERROR",
"status_code": 207,
"status_text": "На этот номер (или один из номеров) нельзя отправлять сообщения, либо указано более 100 номеров в списке получателей" // Описание ошибки
}
} ,
"balance": 0
}
Метод возвращает JSON
ответ полученный от sms.ru
также он имеет 10 параметров:
numbers
* Номер телефона получателя (либо несколько номеров до 100 штук за один запрос).
message
* Текст сообщения в кодировке UTF-8.
from_name
Имя отправителя (должно быть согласовано с администрацией).
ip_address
В этом параметре вы можете передать нам IP адрес вашего пользователя.
timestamp
Время отложенной отправки.
ttl
Срок жизни сообщения в минутах (от 1 до 1440).
day_time
Учитывает часовой пояс получателя. Если указан этот параметр, то параметр time игнорируется.
test
Имитирует отправку сообщения для тестирования. True или False
translit
Переводит все русские символы в латинские.
debug
Включает режим отладки. Все сообщения отправляются с параметром test: True если он не указан в ручную
Метод call()
отправляет запрос на звонок по указанному номеру
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.call('9XXXXXXXXX')
{
"status": "OK",
"code": "1435",
"call_id": "000000-10000000",
"cost": 0.4,
"balance": 0
}
Метод status()
узнает статус СМС по его sms_id
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.status('1000-100000')
{
"status": "OK",
"status_code": 100,
"sms": {
"1000-100000": {
"status": "OK",
"status_code": 102,
"status_text": "Сообщение отправлено (в пути)",
"cost": "X.XX",
"send_time": 1651453200,
"status_time": 1651453200
}
}
Метод cost()
запрашивает у сервера стоимость СМС
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.cost('9XXXXXXXX0', '9XXXXXXXX1', message='Message to sms')
{
"status": "OK",
"status_code": 100,
"sms": {
"9XXXXXXXXX": {
"status": "OK",
"status_code": 100,
"cost": 0,
"sms": 1
}
},
"total_cost": 0,
"total_sms": 1
}
Метод balance()
запрашивает у сервера баланс аккаунта
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.balance()
{
"status": "OK",
"status_code": 100,
"balance": 0
}
Метод limit()
запрашивает у сервера лимиты по отправке СМС
Метод free()
запрашивает у сервера бесплатные лимиты по отправке СМС
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.limit()
free_response = sms_ru.free()
{
"status": "OK",
"status_code": 100,
"total_limit": 5000,
"used_today": 50
}
{
"status": "OK",
"status_code": 100,
"total_free": 5,
"used_today": null
}
Метод senders()
запрашивает у сервера отправителей
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.senders()
{
"status": "OK",
"status_code": 100,
"senders": ["company.com", "Company"]
}
Метод add_stop_list()
добавляет номер в стоп лист
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.add_stop_list('9XXXXXXXXX', 'Comment')
{
"status": "OK",
"status_code": 100
}
Метод del_stop_list()
удаляет номер из стоп листа
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.del_stop_list('9XXXXXXXXX')
{
"status": "OK",
"status_code": 100
}
Метод stop_list()
получает список номеров в стоп листе
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.stop_list()
{
"status": "OK",
"status_code": 100,
"stoplist": {
"9XXXXXXXXX": "Comment",
"9XXXXXXXX1": "Comment"
}
}
Метод add_callback()
добавляет callback (webhook) на аккаунт
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.add_callback('https://campany.com/callback')
{
"status": "OK",
"status_code": 100,
"callback": [
"https://campany.com/callback",
"http://anothersite.ru/callback/index.php"
]
}
Метод del_callback()
удаляет callback (webhook) из аккаунта
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.del_callback('https://campany.com/callback')
{
"status": "OK",
"status_code": 100,
"callback": [
"http://anothersite.ru/callback/index.php"
]
}
Метод callbacks()
получает список callbacks (webhooks)
from smsru_api import SmsRu
sms_ru = SmsRu('Your API KEY')
response = sms_ru.callbacks()
{
"status": "OK",
"status_code": 100,
"callback": [
"https://campany.com/callback",
"http://anothersite.ru/callback/index.php"
]
}
Distributed under the Apache-2.0 License. See LICENSE for more information.
- XpycTee - просто я - XpycTee - smsru_api