自分の電話番号を使ってプログラムからSMSを送信したいですか?高価なキャリアAPIにお金を払う代わりに、あなたのAndroidスマートフォンをSMSゲートウェイとして利用できます。その方法をご紹介します。

コンセプト

従来のSMS API(Twilio、MessageBirdなど)は、通信キャリアを介してメッセージをルーティングします。あなたは電話番号を借り、メッセージごとに料金と月額料金を支払います。

電話ベースのSMSゲートウェイはこれを逆転させます。あなたのAndroidスマートフォンが送信デバイスになるのです。サーバーがメッセージをキューに入れ、あなたの電話がそれらを取得し、SIMカード経由で送信します。あなたは自分の番号を維持し、キャリアのSMS料金を支払うだけです。

必要なもの

  • アクティブなSIMカードが挿入されたAndroidスマートフォン(8.0以降)
  • MySMSGateアカウント(無料で作成可能)
  • MySMSGate Androidアプリ
  • スマートフォン用のWi-Fiまたはモバイルデータ通信

ステップ1:アカウントを作成する

mysmsgate.net/auth/registerにアクセスして登録してください。テスト用に10通の無料SMSが提供されます — クレジットカードは不要です。

登録後、ダッシュボードにAPIキーが表示されます。アプリとAPIコールに必要となるため、コピーしておいてください。

ステップ2:Androidアプリをインストールする

MySMSGateアプリをAndroidスマートフォンにダウンロードしてインストールします。

アプリを開き、ゲートウェイ設定に移動してAPIキーを入力します。アプリがサーバーに接続され、ダッシュボードに「オンライン」と表示されます。

ステップ3:API経由でSMSを送信する

これで、単一のAPIコールでSMSを送信できます。

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は、配信ステータスを確認するために使用できるSMS IDを返します。

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

ステータス: pendingsendingsent(またはエラーメッセージ付きのfailed)となります。

上級編:デュアルSIMと複数デバイス

お使いの電話が2枚の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"
}

電話がオフラインの場合、どうなりますか?

メッセージはサーバーにキューされます。電話が再接続されると、保留中のメッセージを自動的に取得して送信します。サーバーは、電話がスリープモードの場合に、プッシュ通知(FCM)を送信して電話を起動させることもできます。

コスト比較

月間500通のSMSの場合:

プロバイダー月額費用
Twilio$41以上(メッセージ + 番号 + 登録料)
MessageBird$35以上
MySMSGate$15(500 × $0.03、その他の手数料なし)

これは年間300ドル以上の節約になります — しかも自分の電話番号を維持できます。

無料で試す — 10通のSMSが含まれており、クレジットカードは不要です。