Хотите отправлять SMS программно, используя свой собственный номер телефона? Вместо того чтобы платить за дорогие API операторов связи, вы можете использовать свой Android-телефон в качестве SMS-шлюза. Вот как это сделать.

Концепция

Традиционные SMS API (Twilio, MessageBird) маршрутизируют сообщения через операторов связи. Вы арендуете номер телефона и платите за каждое сообщение, а также ежемесячную абонентскую плату.

SMS-шлюз на базе телефона меняет подход: ваш Android-телефон становится устройством отправки. Сервер ставит сообщения в очередь, ваш телефон забирает их и отправляет через свою SIM-карту. Вы сохраняете свой номер и платите по тарифу SMS вашего оператора.

Что вам понадобится

  • Телефон Android (8.0+) с активной SIM-картой
  • Аккаунт MySMSGate (бесплатная регистрация)
  • Приложение MySMSGate для Android
  • Wi-Fi или мобильный интернет для телефона

Шаг 1: Создайте аккаунт

Перейдите на mysmsgate.net/auth/register и зарегистрируйтесь. Вы получите 10 бесплатных SMS для тестирования — кредитная карта не требуется.

После регистрации вы увидите свой API-ключ на панели управления. Скопируйте его — он понадобится для приложения и вызовов API.

Шаг 2: Установите приложение для Android

Загрузите и установите приложение MySMSGate на свой Android-телефон:

Откройте приложение, перейдите в настройки шлюза (Gateway settings) и введите свой API-ключ. Приложение подключится к серверу и будет отображаться как "онлайн" на вашей панели управления.

Шаг 3: Отправка SMS через API

Теперь вы можете отправлять SMS с помощью одного вызова API:

cURL

curl -X POST https://mysmsgate.net/api/v1/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+1234567890",
    "message": "Your appointment is tomorrow at 3 PM"
  }'

Python

import requests

response = requests.post(
    "https://mysmsgate.net/api/v1/send",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "to": "+1234567890",
        "message": "Your appointment is tomorrow at 3 PM"
    }
)
print(response.json())

JavaScript (Node.js)

const response = await fetch("https://mysmsgate.net/api/v1/send", {
    method: "POST",
    headers: {
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    body: JSON.stringify({
        to: "+1234567890",
        message: "Your appointment is tomorrow at 3 PM"
    })
});
const data = await response.json();
console.log(data);

PHP

$ch = curl_init("https://mysmsgate.net/api/v1/send");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "to" => "+1234567890",
        "message" => "Your appointment is tomorrow at 3 PM"
    ]),
    CURLOPT_RETURNTRANSFER => true
]);
$response = curl_exec($ch);
echo $response;

Шаг 4: Проверка статуса доставки

API возвращает ID SMS, который вы можете использовать для проверки статуса доставки:

curl https://mysmsgate.net/api/v1/sms?id=SMS_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

Статусы: pendingsendingsent (или failed с сообщением об ошибке).

Продвинуто: две SIM-карты и несколько устройств

Если ваш телефон поддерживает две SIM-карты, вы можете выбрать, с какой из них отправлять:

curl -X POST https://mysmsgate.net/api/v1/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+1234567890",
    "message": "Hello!",
    "sim_slot": 1
  }'

Вы также можете подключить несколько телефонов к одному аккаунту и маршрутизировать сообщения на определенные устройства:

{
  "to": "+1234567890",
  "message": "Hello!",
  "device_id": "your-device-id"
}

Что происходит, когда телефон не в сети?

Сообщения ставятся в очередь на сервере. Когда телефон снова подключается к сети, он автоматически забирает отложенные сообщения и отправляет их. Сервер также отправляет push-уведомление (FCM), чтобы разбудить телефон, если он находится в спящем режиме.

Сравнение стоимости

За 500 SMS в месяц:

ПровайдерЕжемесячная стоимость
Twilio$41+ (сообщения + номер + регистрация)
MessageBird$35+
MySMSGate$15 (500 × $0.03, без других сборов)

Это экономия более $300 в год — и вы сохраняете свой собственный номер телефона.

Попробуйте бесплатно — 10 SMS включены, кредитная карта не требуется.