#はじめに
ついにiOS12がリリースされましたね。
地味なアップデートかなとの印象でしたが、新しく追加されたショートカットというアプリでWeb APIを叩けることを知ってからはその印象はガラッと変わりました。
というわけで、この記事ではショートカットを使って、ボタン一つで会社のslackチャンネル上に、遅刻の旨と到着予想時刻を送信するショートカットを作ります。
↑これを実行すると ![image.png](https://qiita-image-store.s3.amazonaws.com/0/268579/a19f5584-6db4-5dc8-9786-03612b63d758.png) ↑こんな感じになる。#作り方
###投稿したいslackの認証トークンを手に入れる
今回はメッセージを送信するだけなので、Send messages as user
というトークンがあればOKです。
以下の記事を参考に取得しました
Slack API 推奨Tokenについて
###新しいショートカットを作成する
ショートカットアプリから新しいショートカットを作成します。
※ショートカットアプリはiOS12にアップデートしても自動でインストールはされないので、個別でAppStoreからダウンロードしましょう
###会社までの移動時間を取得する
必要なコマンドを下のドロワーから追加すると、ショートカットのスクリプトが組めます。
追加したコマンドは長押しで移動できます。
矢印で繋がっているコマンドは、上のコマンドからのデータの入力を表しています。
###到着時刻を計算する
現在の日付と移動時間から会社への到着予想時刻を取得して変数に追加しておきます。
###その日の出社時刻を取得する
到着予想時刻は2018/10/15 11:23
という形式なので、正規表現を使って時間の部分を出社時刻10:00
に置き換えます。(10時というのは例えです。)
わざわざ一度テキストにしてから再び日付形式に変換しているのは、日付のままだとこのような操作ができないからです。
###間に合いそうかどうかで条件分岐させる
到着予想時刻が出社時刻が大きい場合、遅刻することが予想されるので、遅刻連絡の処理に分岐します。
この画像中ではついでに到着予想時刻の時間の部分だけを変数に追加しておいてあります。
あとで使います。
###APIのエンドポイントを作成する
token=
の後ろにはさっき取得した認証トークンをそのまま貼り付けます。
channel=
の後ろには投稿したいチャンネル名を書きます。
どちらも特に""などで囲む必要はありません。
(改めて見返してみると、チャンネルの指定までをURLの方に書くべきですね)
詳しくは以下の記事を参考にしました。
Slack APIでメッセージ送信
###エンドポイントを叩く
ちょっとわかりづらいですが、「URLの内容を取得」というコマンドでURLを入力で受け取ると、エンドポイントを叩くことができます。
今回はPOSTなので方法はPOSTにしてください。
これでslackの指定したチャンネルに遅刻メッセージが送れるはずです。
ついでに、間に合いそうな時はメッセージは送信せずに、自分の携帯にその旨を通知しましょう。
###名前をつける
編集画面の右上にあるニンテンドースイッチみたいなボタンをタップすると、名前などの編集ができます。
好きな名前とアイコンをつけて、ホーム画面がウィジェットに追加しときましょう。
siriに追加すれば、例えば「遅刻する!!」と叫ぶだけで会社へ遅刻連絡ができるようになりますね(電車の中でそんなこと叫んでたら変な奴ですが)
#終わりに
今回はやりませんでしたが、遅刻の理由などをいくつか登録しておき、ショートカットを起動した時に選べるようにすれば、複数の遅刻理由に対応できます。
他にも連絡を入れた後に、電車の乗り換え経路を表示するなどのカスタマイズもできます。
また、今回はslackでしたが、Web APIが使えれば正直なんでもできるので、夢が広がります。
是非みなさんも快適な自動化ライフを!
Twitterもやってるので、よければフォローお願いします。
→https://twitter.com/ObataGenta