はじめに
朝、家の中でiPhoneをどこかに置き忘れて見つかりません。困りました。忘れ物タグのアプリを入れておけば確かにiPhoneを鳴動させることはできますが、アプリの常駐によるバッテリー消費や、ロケーションの共有といったプライバシー面がちょっと嫌です。 iCloudの「探す」の実行もまあ面倒ですし、これもロケーションの共有があり嫌です。
ということで、iPhoneの標準機能だけを使って、誰かがメッセージを送ってくれれば隠れてるiPhoneの音量を強制的に100%にし1秒タイマーでアラームを鳴らすといったショートカットを作ります。
そして、その誰かがいなかった場合のため、Webブラウザからメッセージを送信できるようにしておきます。
まだ面倒なので、家のAmazon Echoに聞けばメッセージを送ってくれるようにAlexaスキルを作ります。
全体構成
- 誰かがメッセージを送ってくれればiPhoneを探せるようにします。
- ClickSendサービスでWebからメッセージを送ってiPhoneを探せるようにします。
- Alexa Skillを作り「アレクサ、スマホどこ?」でiPhoneを探せるようにします。
1.メッセージ受信で鳴動(iOSショートカット)
iPhone標準の「ショートカット」アプリに含まれる「オートメーション」機能を利用します。
特定の内容のメッセージを受信したことをトリガーに、システム音量を強制的に引き上げ、タイマーを起動させるショートカットを作ります。タイマーはマナーモードでも音が出るはずです。
1-1. オートメーションの新規作成
1-2. トリガー(実行条件)の設定
SMSの受信検知ルールを以下のように設定します。
設定ができたら「次へ」をタップします。
1-3. 実行アクションの構築
「新規空のオートメーション」を選択し、以下のアクションを順番に追加します。
-
「音量を設定」を追加
- アクション検索で「音量」と入力し、「音量を設定」を追加。
- 数値を 100% に変更します。
これにより、物理スイッチが消音(マナーモード)でも、メディア音量として最大音量で鳴動可能になります。
- 「タイマーを開始」を追加
1-4. 動作確認
できました。

誰かのスマホからメッセージfind phoneを送ると「タイマー終了時のアラーム音」がマナーモードであっても大音量で鳴ります。また、音量は大音量のままになるので手動で戻しておきましょう。
2.Webからメッセージを送る(ClickSend)
誰かがいなくても自分で探せるように、Webブラウザからメッセージ送信できるようにします。

2-1. アカウント作成(Google連携)
- ClickSend公式サイトへアクセスします。
- 「Sign Up Free」ボタンをクリックします。
- 「Sign up with Google」を選択し、自身のGoogleアカウントで認証を行って登録を完了させます。
- ※初回登録時には、テスト送信用の無料クレジットが付与されます。
2-2. 自分の電話番号の登録と認証
- ログイン後、ダッシュボードで電話番号の入力を求められたら、自分のiPhoneの番号を入力します。
- SMSで送られてくる認証コードを入力し、アカウントを有効化します。
2-3. 動作確認
できました。
ClickSendの管理画面から直接メッセージを送ります。

- 左メニューの「SMS」から「Quick SMS」を選択します。
-
To: 自分のiPhoneの電話番号を入力します。
- ※番号は国際形式(日本なら +81)で入力します。例:090-1234-5678なら
+819012345678となります。
- ※番号は国際形式(日本なら +81)で入力します。例:090-1234-5678なら
-
Message: iPhoneのショートカットに設定したキーワード
find phoneを入力します。 - 「Send SMS」ボタンをクリックします。
- iPhoneにメッセージが届き、アラームが鳴ります。
3.「アレクサ、スマホどこ?」に反応(Alexa Skill)
Amazon Echoに「スマホどこ?」と話しかけると、内部でPythonプログラムが走り、ClickSendのAPIを叩いてiPhoneにメッセージを送るスキルを作ります。
3-1. Create Skill(スキルの新規作成)
Alexa Developer Consoleにログインします。
- アカウントが無い場合は作りましょう。使っているEchoデバイスにAmazonのアカウントがあると思いますが、それと同じである必要があります。
- ログインしたら、右上の 「コンソール」 をクリックしてダッシュボード画面を開きます。
「Alexa Skills Kit」 をクリックします。
「スキルの作成」 ボタンをクリックします。
新規スキルを作成していきます。
-
スキル名は 「クリックセンド」 、プライマリロケールは 「日本語」 とします。
-
エクスペリエンスのタイプは 「その他」 、モデルは 「カスタム」 、ホスティングサービスは 「Alexa-hosted(Python)」 とします。ホスト地域はデフォルト値のままで良いです。
-
Alexa-hostedスキルのテンプレート作成画面となるので少し待ちます。画面の右下にbuild completedと表示されれば作成終了です。
※ ここで、スキル作成がいつまで待っても終了しない場合や、エラーと表示された場合でも作成されていることが多いです。
確認は、新規スキルの作成画面(https://developer.amazon.com/alexa/console/ask) の作成済スキルの一覧に作成したスキルが追加されていれば良いです。

スキルに任意のメッセージを送る機能を追加していきます。
- スキル一覧画面で 「クリックセンド」 を押してスキルの編集画面を開きます。
- 上のメニュー 「ビルド」 を押してCUSTOM設定画面を開きます。
- 右のメニュー 「1. Invocation Name」 、「2. Intents, Samples, and Slots」 を押してそれぞれ設定します。
- Skill Invocation Nameに 「クリックセンド」
- Create custom intentに 「SendSmsIntent」
- Sample Utterancesに 「{message_content} と送って」
- Intent Slotsの選択に 「AMAZON.SearchQuery」
- 上のメニューから 「SAVE」 し、「Build skill」 を実行します。


コードを書きます。
- 上のメニュー 「コードエディタ」 を押してコード編集画面を開きます。
- 以下の3つのファイルを追加します。GitHubに置いておきます。
lambda_function.py, requirements.txt, config.py
- config.py は ClickSend のREST-API接続情報なのでClickSendのWebサイト 「Developers」 メニューからコピペします。
- ClickSendのWebサイトで、 「API Credentials」 メニューを押して、表示された USERNAME と API KEY を config.py の該当項目にコピペして 「保存」 を押し保存します。
- すべてのファイルを保存したら、右上の 「デプロイ」 を押してスキルに反映します。
テスト
できました。
テストしてみます。
- 上のメニュー 「テスト」 を押してテスト画面を開きます。
- スキルテストが有効になっているステージは、 「開発中」 にします。
- Alexaシミュレータで文字入力して動作確認します。
「クリックセンドを開いて+819012345678find phoneと送って」 で送信先電話番号とメッセージ本文を指定して送信します。
半角スペース区切りで語を分解するので半角スペースは省略しないようにする必要があります。
- ClickSendのWebサイトの SMS History で送信ログを確認できます。
デバッグ
デバッグはつきものですね。AWS実行ログはClowdWatchにログインして確認します。
3-2. 「アレクサ、スマホどこ?」の定型アクション登録
スキルは完成しましたが、発話内容に無理があります。
「クリックセンドを開いて +819012345678 find phone と送って」
これを定型アクション 「スマホどこ」 として登録します。Webからは登録できなくて、スマホのAmazon Alexaアプリでの操作が必要です。
1. 定型アクションの新規作成
- スマホの 「Amazon Alexa」アプリ を開きます。
- 下部メニューの 「その他 (More)」 > 「定型アクション (Routines)」 をタップします。
- 右上の 「+」 ボタンをタップして新規作成を開始します。
2. 実行条件(フレーズ)・アクションの設定
- 「実行条件を設定 (When this happens)」 をタップします。
- 「音声 (Voice)」 を選択します。
- フレーズとして 「スマホどこ」 と入力し、「次へ (Next)」をタップします。
- 「アクションを追加 (Add Action)」 をタップします。
- 一番下の 「カスタム (Customized)」 を選択します。
- 「Alexa、何をするか入力してください」 の欄に、以下の呼び出しコマンドを入力します。
- 入力内容:
クリックセンドを開いて +819012345678 find phone と送って - ※ここには、スキル名・電話番号・メッセージ本文を半角スペースで区切った「一文」を入力します。
- 「次へ (Next)」をタップします。
4. 保存
- 右上の 「保存 (Save)」 をタップします。
- 設定が反映されるまで数十秒待ちます。
5. 確認
できました。
- Echoデバイスに向かって 「アレクサ、スマホどこ」 と話しかけてください。
- ClickSend経由でメッセージが飛び、iPhoneが鳴ります。
完成
ここまでで、家のAmazon Echoに聞けば置き忘れたiPhoneが鳴動するシステムが完成しました。














