NFCタグ で鍵を開けよう(6) iOS13時代の最終形

この記事は「NFCタグ で鍵を開けよう」シリーズの第6弾です。 これで最後の予定です。

  1. NFCタグにURIを書き込む
  2. iPhoneを鍵とし、ドアにNFCタグを設置するパターン
  3. iOSアプリを経由してセキュリティレベルをあげる
  4. NFCタグを鍵とし、ドアにNFCリーダーを設置するパターン(まだ書いてないけど気が向いたら書くかも)
  5. より実用的にしていくために
  6. iOS13時代の最終形(この記事)

3〜5についてはiOS13の機能を使った最終形で、もうこれでいいじゃん!となったのでスキップします。(NFCタグを鍵にするパターンはまだ必要なケースあるかも)

なにができる?

iOS 13でNFCタグをトリガーとしてアプリを叩けるようになった

iOS 13(正確にはiOS 13.1)で、純正アプリの ショートカット にオートメーションという機能が追加されました。 このオートメーションのトリガーの1つに、なんと NFCタグ があるのです。

そして、それをトリガーとしてサードパーティ製アプリの Siri Shortcut を呼び出せます。 つまり、アプリがSiri Shortcutに対応していれば、そのアプリをNFCタグタッチだけで動作させられるようになったということです。 そして、我らがSesameもこれに対応しています。

1行でまとめると、

iOS 13なら何も開発しないで、NFCタグタッチでSesameの解錠ができる

ということです。

対応デバイス

正確には、iOS 13であっても Background Tag Reading に対応したiPhoneでないとこの機能は使えません。2019年10月時点での対応機種は、

  • iPhone XR
  • iPhone XS
  • iPhone XS Max
  • iPhone 11
  • iPhone 11 Pro
  • iPhone 11 Pro Max

の6機種です。

実際にやってみよう

NFCタグの準備

NFCタグには何も情報を書き込む必要はありません。

など適当なNFCタグを買ってきたままそのまま使えます。

オートメーションの作成

次に、ショートカットアプリでオートメーションを設定します。

解錠をマイショートカットとして追加

マイショートカット追加

Sesameを普段から使っていれば、ギャラリータブの中に 「xxx」を解錠 というSesame用のショートカットが含まれているはずです。それに適当な音声コマンドをあてて Siriに追加 をしておきます。Siriに追加されたショートカットをオートメーションのアクションとして指定できるようになります。

オートメーションを追加

マイショートカット追加

それでは、実際にNFCタグタッチによるオートメーションを追加してみましょう。

まず、オートメーションタブから 個人用オートメーション を作成開始します。

設定 セクションにある NFC を選択し、 スキャン でNFCタグをスキャンします。タグの名称は適当で大丈夫です。

その後、 アクションを追加ショートカット を検索し、 ショートカットを実行 を選択します。次の画面で青い ショートカット という文字部分をタップすると、マイショートカットの一覧が表示されますので先ほど追加した解錠用のショートカットを選択します。

最後に、 次へ を押した後の画面で 実行の前に尋ねる のスイッチをOffにした状態で 完了 してください。こうすることでNFCタグタッチの後、ユーザー操作なしに解錠が実行できるようになります。

セキュリティ大丈夫?

iPhoneを鍵とし、ドアにNFCタグを設置するパターン の段階では、NFCタグにURLを書き込み、そのURLを叩くことで解錠APIを実行していました。そのため、NFCタグをタッチすれば、誰のどのiPhoneでも解錠できてしまうという大変危険な状態でした。

一方、今回のパターンでは、NFCタグをタッチすると自分のiPhoneの中にインストールしてあるSesameが動いて解錠をしてくれます。つまり、解錠用のNFCタグを玄関の外側に貼り付けたままでも、自分以外のiPhoneで解錠をすることは不可能です。

ちょっとした注意点とテクニック

これで、玄関ドアに貼り付けたNFCタグをiPhoneでタッチするだけで解錠ができるようになりました。以下、これを実用するにあたってのちょっとした注意点とテクニックを。

金属に貼り付けたNFCタグは読み取れない

玄関ドアの材質によりますが、金属に貼り付けたNFCタグはiPhoneで読み取ることができません。その場合、他の場所にNFCタグを貼るか、他の材質のものを介在させる必要があります。

NFCタグの貼り付け場所は自分の肩くらいの高さがよい?

NFCタグの読み取りはiPhoneをロックした状態からでも可能ですが、 iPhoneの画面が消灯している状態では発火しない という条件があります。

しかしiPhoneのデフォルト設定ではiPhoneを持ち上げて少し傾けると画面が自動で点灯するようになっています。つまり、玄関ドアの自分の肩くらいの高さにNFCタグがあると、そこにiPhoneでタッチしようとする動作の途中で画面が自動的に点灯します。こうすることで、実質iPhoneを無操作でタッチするだけで解錠することができるようになります。

ショートカット便利すぎ

ショートカットアプリを使ったオートメーションの良いところの1つとして、利用者ごとにオートメーションをカスタマイズできるというのがあります。

NFCタグをタッチしたあと、解錠だけでなく出勤記録を自動で付けるとか、ロボットにおかえり!を言わせるとか作り込みさえすればなんでも一緒にできそうです。そのあたりはお好みで。

ショートカットのこれからが楽しみです!

所の執筆・監修した書籍

iOS 11 Programming

iOS 11 Programming

  • 著者:堤 修一,吉田 悠一,池田 翔,坂田 晃一,加藤 尋樹,川邉 雄介,岸川 克己,所 友太,永野 哲久,加藤 寛人,
  • 製本版,電子版
  • PEAKSで購入する
iOS 12 Programming

iOS 12 Programming

  • 著者: 加藤 尋樹,佐藤 紘一,石川 洋資,堤 修一,吉田 悠一,池田 翔,佐藤剛士,大榎一司,所 友太,
  • 製本版,電子版
  • PEAKSで購入する