iPhoneからSSHコマンド実行・Webhook連携もできる公式アプリ「ショートカット」を活用する

概要

iPhone で SSH コマンドを実行したり、Webhook 連携を組み立てることが可能となりました。Apple 公式アプリの「ショートカット」を使って実現できます。

「ショートカット」アプリの概要と、簡単な活用事例をまとめました。


iPhone から SSH や curl が実行できる

「ショートカット」アプリでは、非常に多くのアクションが用意されています。その中には「SSH」や「URL 取得」なども含まれており、かなり遊べるアプリになりそうです。

URL 取得は GET に限らず POSTPUT も可能で、簡単なリクエストであれば iPhone からサクッと実行できます。簡易 curl のようなイメージです。

SSH では複数のコマンドを一度に実行できるほか、他アクションとの連携も可能です。

f:id:yuu2634:20180920222607p:plain


iOS 12 で Apple 公式アプリ「ショートカット」を使用

これらの操作には、iOS 12 以降でサポートされている Apple 提供の無料アプリ「ショートカット」を使用します。

「ショートカット」アプリで実行できるアクションは多数ありますが、特に面白そうなものをピックアップすると、以下の通りです。

  • 指定した URL にリクエストを送信する(POST も可)
  • SSH 経由でコマンドを実行する
  • iPhone のデバイス状態を変更する

f:id:yuu2634:20180920215904p:plain

プログラミングのように、ユーザ入力を受け付けたり、変数操作やループ処理を実行することもできます。(小さい画面でポチポチ組むのは辛いかもですが)

f:id:yuu2634:20180920215906p:plain

これらを組み合わせることで、幅広いアクションが可能となりそうです。


iPhone から SSH コマンドを実行する

App Store から「ショートカット」アプリをインストールしておきます。

アプリを起動後、ショートカットを作成 をタップします。

f:id:yuu2634:20180920224706p:plain

アクションの検索欄が出てくるので ssh を検索して選択します。

f:id:yuu2634:20180920224702j:plain

接続情報とコマンドを入力し、上部中央にある実行ボタンで開始できます。

f:id:yuu2634:20180920225219j:plain

右上の変なボタンから、保存する際の名称やアイコンなどが設定できます。

ホーム画面やウィジェットからワンタップ実行

作成した処理は、ホーム画面やウィジェットにも追加することができます。

アイコンの色やロゴも、豊富な選択肢の中から選べるようです。

f:id:yuu2634:20180920224157p:plain

特にウィジェットは便利で、アプリを立ち上げずにサクッと実行できます。家電操作系のコマンドなどと相性が良さそうです。


iPhone で REST API を叩いて JSON をパースする

せっかくなので、一つ例を作ってみました。

以下の URL にリクエストを投げ、スプラトゥーン2の現在のステージ情報を JSON で取得、JSON をパースしてステージ情報だけを抜き出してみます。

https://spla2.yuu26.com/regular/now

今回の要件を実現するためには、3種類のコンポーネントを用います。

  • URL コンポーネントで、REST API の情報を指定
  • 取得コンポーネントで、URL のレスポンスを取得(メソッドは GET)

f:id:yuu2634:20180920221526p:plain


今回取得したいデータは、JSON 内の .result.maps[] となります。

  • パース用コンポーネントで、.result を抽出
  • パース用コンポーネントで、.maps を抽出

f:id:yuu2634:20180920222123p:plain

テキストのみ抽出できました。取得結果が2件あるため、横フリックで確認できます。


仕上げとして、通知メッセージに出力します。

  • 結合コンポーネントで、2項目を改行で繋げる
  • 通知コンポーネントで、結果を通知させる

f:id:yuu2634:20180922010359p:plain

これで完成です。(作業中にステージが変わってしまいましたが)

ウィジェットから呼び出すと、ワンタップでステージ情報を確認できます。

f:id:yuu2634:20180922010751p:plain


なお、ここで使用した REST API の詳細については、イカの記事に書いてあります。 blog.yuu26.com


まとめ

iPhone で利用できる公式アプリ「ショートカット」について紹介しました。

利用できるアクションが非常に豊富なため、外部のシステムや API と連携させて遊べる面白いアプリです。iOS 12 を利用している方は、ぜひお試しください。