3.5 KiB
3.5 KiB
SMSc - Отправка SMS через smsc.ru
Пакет smsc предоставляет простой способ отправки SMS через сервис smsc.ru на языке Go.
Установка
go get git.gm6.ru/icewind/smsc
Использование
package main
import (
"git.gm6.ru/icewind/smsc"
)
func main() {
// Создание запроса на отправку SMS
req := smsc.RequestSMS{
ApiKey: "ваш_api_ключ", // Замените на ваш реальный API-ключ
Phone: "+79991234567", // Номер получателя
Message: "Привет от Go!", // Текст сообщения
}
// Отправка SMS
resp := smsc.SendSMS(req)
// Проверка результата
if resp.Error != "" {
// Обработка ошибки
panic(resp.Error)
}
// Успешная отправка
fmt.Printf("SMS отправлена. ID: %d, Количество сообщений: %d\n", resp.ID, resp.Cnt)
}
Функции
SendSMS(req RequestSMS) ResponseSMS
Отправляет SMS через сервис smsc.ru.
Параметры:
req— структураRequestSMSс данными для отправки.
Возвращает:
ResponseSMS— ответ от сервера, включаяIDиCnt, или ошибку.
Структуры
RequestSMS
| Поле | Тип | Описание | JSON-тег |
|---|---|---|---|
ApiKey |
string | API-ключ от smsc.ru | apikey |
Phone |
string | Номер телефона получателя | phones |
Message |
string | Текст сообщения | mes |
ResponseSMS
| Поле | Тип | Описание | JSON-тег |
|---|---|---|---|
ID |
int | Уникальный идентификатор SMS | id |
Cnt |
int | Количество отправленных SMS | cnt |
Error |
string | Описание ошибки (если есть) | error |
ErrorCode |
int | Код ошибки | error_code |
Обработка ошибок
Если произошла ошибка при отправке, поле Error в ResponseSMS будет содержать описание ошибки.
resp := smsc.SendSMS(req)
if resp.Error != "" {
log.Printf("Ошибка: %s (код: %d)\n", resp.Error, resp.ErrorCode)
}
Тестирование
Для тестирования функции SendSMS можно использовать реальные вызовы (интеграционные тесты). Пример теста:
func TestSendSMS(t *testing.T) {
req := RequestSMS{
ApiKey: "ваш_api_ключ",
Phone: "+79991234567",
Message: "Тестовое сообщение",
}
resp := SendSMS(req)
if resp.Error != "" {
t.Errorf("Ошибка при отправке SMS: %s", resp.Error)
}
if resp.ID == 0 {
t.Error("Ожидался ненулевой ID")
}
}
Внимание: Не забудьте заменить
ваш_api_ключна реальный ключ и убедитесь, что номер телефона корректен.
Лицензия
MIT