MacroDroidでSMS自動転送する3つの方法

MacroDroidでSMS自動転送する3つの方法

サブ機を SMS の認証コード受信専用にしていると、よくある悩みが「届くのはそのサブ機なのに、自分が使っているのは別の端末」ということです。これを解決するのに、root 不要で設定も難しくないツールが MacroDroid です。今回は SMS 転送の3つの方法——標準転送機能、Telegram Bot、ntfy 通知——をそれぞれの特徴と向いている場面とともに整理してみます。

MacroDroid とは

詳しくはこちら:MacroDroid で自動ロック解除を実現する設定方法

MacroDroid は Android 向けの自動化アプリで、Tasker と同系統のツールですが、設定画面がより直感的で扱いやすくなっています。SMS 受信やネットワークの変化、時刻指定などさまざまなイベントを監視し、条件が満たされると指定した動作を実行してくれます。「SMS を受信したら転送する」という流れも、数分の設定で組めます。無料版で十分機能するので、有料版を買う必要はありません。

https://play.google.com/store/apps/details?id=com.arlosoft.macrodroid

Google Play から MacroDroid をダウンロード

基本の流れ:たった2ステップ

自動化全体はとても単純な仕組みで、ステップは2つだけです。

  1. トリガー:SMS を受信(SMS Received)
  2. アクション:SMS の内容を指定先に転送

MacroDroid の SMS 自動転送マクロのトリガーとアクション設定画面

転送アクションには多くの方法が用意されていますが、ここでは実用的な3つに絞って紹介します。

方法①:MacroDroid 標準の転送機能

外部の設定を一切必要としない、もっとも手軽な方法です。MacroDroid のアクション一覧に、次の3つの選択肢が用意されています。

  • SMS 送信:別の番号へ転送します。通話料・SMS料金が発生する点に注意してください
  • メール送信:Gmail アカウントを連携すればすぐ使えます。動作も安定しています
  • WhatsApp:WhatsApp の連絡先に転送できます(未検証)

MacroDroid 標準の SMS 転送アクション:SMS、メール、WhatsApp

メールに転送するだけでよく、Bot やセルフホストの設定を増やしたくない人には、この方法が一番手間がかかりません。Gmail を連携すればそのまま使えます。

方法②:Telegram Bot 経由で転送

普段から Telegram を使っているなら、この方法は体験が良いはずです。SMS がそのまま Telegram のトーク画面に届き、リアルタイムでプッシュされるので、別のアプリを入れる必要がありません。Telegram のアクティブユーザーや、特定の番号からの認証コードだけ受け取りたい人に向いています。

先に伝えておきたい点があります。この方法は SMS の内容を URL パラメータに乗せて送るため、改行に対応していません。長い SMS は一行にまとめて表示されます。改行が必要な場合は方法③を選んでください。

設定手順

ステップ1:Telegram Bot を作成し、Token と chat_id を取得します。詳しい方法はOracle Cloud で Telegram RSS Bot を構築する手順を参照してください。

ステップ2:ブラウザで以下の URL を試し、Bot が正常にメッセージを受信できるか確認します。

https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>&text=テストメッセージ

各パラメータの意味は次の通りです。

  • <TOKEN>:Bot 作成時に取得した長い文字列
  • <CHAT_ID>:数字形式の chat id
  • text=:送信するメッセージ内容

ステップ3:MacroDroid に「HTTP リクエスト」アクションを追加します。

MacroDroid のアクション一覧から HTTP リクエストを選ぶ画面

HTTP リクエストの設定画面に、以下の内容を入力します。

MacroDroid の HTTP リクエスト設定画面、Telegram Bot API のアドレスと SMS 変数を入力

URL の形式は以下の通りで、{sms_message} を SMS 本文の変数として挿入します。

https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>&text={sms_message}

URL 入力欄の横にある「…」ボタンを押すと、{sms_sender_number}(送信元番号)や {time}(時刻)など、他の変数も挿入できます。

転送結果

MacroDroid から Telegram Bot へ SMS を転送した実際の画面。内容は表示されるが改行は反映されない

結果は上の画像の通りです。内容は欠けることなくリアルタイムで届きますが、唯一の制約として改行が反映されず、すべて一行につながって表示されます。

方法③:ntfy 通知で転送(フォーマットが一番充実)

https://tzang.net/ios-sms-forward-2-android-ntfy/

ntfy セルフホスト型プッシュ通知サービスのロゴと概要

ntfy はオープンソースのプッシュ通知サービスで、セルフホストにも対応しています。任意のデバイスでトピックを購読すれば通知を受け取れます。Telegram の方法と比べた強みは改行に対応していることで、送信元番号・時刻・本文をそれぞれ別の行に整理して表示できます。Telegram を使っていない人、自分でサーバーを管理したい人、第三者のサーバーを経由させたくない人、複数の番号から SMS を受け取って時刻や送信元まで含めた完全な情報を確認したい人に向いています。

設定手順

ステップ1:ntfy のサービスを用意します(公式の ntfy.sh を使うか、下記の手順を参考にセルフホストしてください)。

参考:セルフホストした ntfy で iOS の SMS を Android に同期する

ステップ2:MacroDroid に「HTTP リクエスト」アクションを追加し、以下の2つの部分を設定します。

URL の設定:ntfy のトピックの完全な URL を入力します。Basic 認証を有効にしている場合は、ここに認証情報も入力します。

MacroDroid の HTTP リクエストで ntfy のトピック URL と Basic 認証情報を設定する画面

本文(Body)の設定:本文タブに切り替えると、転送メッセージのフォーマットを自由に定義できます。改行にも対応しており、{sms_sender_number}{sms_message}{time} などの変数を挿入できます。

MacroDroid の ntfy 向け HTTP リクエスト本文設定、SMS の変数を挿入し改行に対応

転送結果

MacroDroid から ntfy 経由で SMS を転送した実際の画面。送信元・時刻・本文が改行つきで表示される

結果は非常に充実しています。送信元番号、受信時刻、本文がそれぞれの行にきれいに分かれて表示され、フォーマットも自由に組み立てられます。3つの方法の中で、もっとも情報量が多い方式です。

3つの方法、どれを選ぶか

方法設定の難易度改行対応向いている場面
① 標準転送(メール)最も簡単対応メールに転送するだけでよく、追加設定をしたくない
② Telegram Botやや簡単非対応Telegram ユーザー、認証コードの受信だけでよい
③ ntfy 通知セルフホストが必要対応完全なフォーマット、複数番号、セルフホストが必要

これで、以前から使っていた古い方法は引退ということになります。MacroDroid によって、SMS 転送の設定が独立したアプリから自動化ツールの中に統合され、他のマクロと一緒に管理できるようになり、運用がまとまりやすくなりました。

シェア・購読:
🧡 この記事が気に入ったら、RSSフィードを購読して最新の更新を受け取りましょう。