iOSショートカットを使ってSlackに投稿する
こんばんは。話題のclubhouseでの会話の中で、iOSショートカットでSlack投稿を簡略化している話をしたら、需要がありそうだったので備忘録も兼ねてやり方を書いておきます。
そもそもショートカットとは
iOS13から標準搭載されているアプリで、日時や場所、ホーム画面からの起動などをトリガーに、アプリを操作するなどオリジナルのアクションを登録することができる自動化アプリです。例えば、「○○さんからSMSが来たら音楽を再生」のようなニッチなアクションを作成できます。
IFTTTのようにコードを書かずにボタン操作だけでコードを書かなくてすむ気軽さもある一方、対応しているアプリが少なく、あまり直感的な操作ではないので、最近まであまり活用できていませんでした。ただ調べてみると、if文for文があったり、APIを叩けたり、かなりプログラマブルなこともできるらしいことを知りました。
つくったもの
我が家では収支管理用のSlackチャンネルを作り、そこに立替メモをしておいて月末にまとめて精算しているのですが、メモをとるときにいちいちSlackを起動→ワークスペースを変更→チャンネルを変更するのがめんどくさかったので、ショートカットにしてみました。
このような感じで、ホーム画面からショートカットを起動し、「品目」「+/ー」「金額」を入力すれば指定したチャンネルに投稿してくれます。
ちなみに今回は詳しく触れませんが、自作のウシジマくんbotにメンションを飛ばして(期間を指定しなければ)直近1ヶ月のログからスプレッドシートを作成し収支計算できるようにしています。(アイコンは成人式のとき友達と撮ったプリクラですごめんなさい)
Slackはショートカットに対応していないため、直接Slack APIをたたく必要があります。ただ、スクリプトを書いたりする必要はないので、なんとなくAPIを「叩く」とは何か知っていて、英語への拒絶反応がなければ、ノンプログラマーの方も作成できると思います!
APIでSlackに投稿するためのTokenを作成する
APIで誰からでも自分の情報を抜き取ったり編集できるのはまずいので、身分確認とできることを制限する役割をもつ鍵=Token(トークン)を作成します。これはSlackに限らずAPIを提供するサービスには大体用意されていると思います。
1. https://api.slack.com/apps にアクセスし、「Create New App」を選択
2. App Name(適当でOK)と利用するワークスペースを選択
3. 左メニューのFeaturesの中にある「OAuth & Permissions」を選択
4. 「Scopes」>「User Token Scopes」で、「Add an OAuth Scope」を選びます。今回必要なのはメッセージの書込権限だけなので、「chat:write」を追加します
5. 同ページ上の方にある「Install to Workspace」からこのアプリをワークスペースにインストール(ちなみに権限を変更する度にインストールしなおす必要があります)
6. 「OAuth Tokens for Your Team」>「OAuth Access Token」が必要なTokenです。(鍵みたいなものなので取り扱いはご注意ください!)
投稿テストしてみる
今回はSlackの chat.postMessage APIを叩きます。
↑で作ったTokenを使って正常に投稿ができるか↓で試してみましょう!
↑を入力し、「Test Method」します。下の方に "ok": "true" なレスポンスが返ってきてSlack側で投稿ができていれば成功です!(もしエラーが返ってきていたらがんばってエラー文を読みましょう)
ショートカットの設定をする
いよいよショートカットを作成します。上記の収支ショートカットを作る想定なので、細かいカスタマイズは参考程度にしてください。
1. 新規ショートカットを作成
まずはユーザー入力部分からアクションを作っていきます。
2.「+」>「テキスト」を選択し、テキスト部分をタップして「毎回尋ねる」を選択
3. 「+」>「リスト」を選択し、「+/-」の項目を作る
4. 「+」>「リストから選択」を選択し、3で作ったリストを指定する(新しく作ったアクションより上にあるアクションを変数として使える)(ここがいまいちわかりにくい)
5. 「+」> 「入力から数字を取得」を選択肢、「入力」部分を「毎回尋ねる」にする
ここからAPIの用意をします。
6.「+」> 「URL」を選択し、「https://slack.com/api/chat.postMessage」 と入力します
7. 「+」> 「URLの内容を取得」を選択し、「URL」を↑のURLに指定します
8. ↑で作成したアクションの「表示を増やす」を選択しAPIのリクエストを設定していきます。 ${} 内は変数です。
これで完成です!ショートカットを実行してみましょう。
作成したショートカットは「・・・」からホーム画面に追加することができます。(ちなみに私は実行後ホーム画面に戻るようにLauncherというアプリを使ってホーム画面に戻るアクションを最後にいれているのですが、だいぶ気持ち悪い感じなので画面遷移させない方法があれば誰か教えてください→ iOS 14.4アップデート後画面遷移しなくなりました)
さいごに
IFTTTと何が違うのってなっちゃいそうですが、iOS標準機能との連携にはかなり相性が良い気がします。機内モードになったらSlackに通知、おやすみモードになったらSlackもオフラインにする、みたいなことはショートカットでできそうですね。便利な活用方法があればぜひ教えて下さい!
この記事が気に入ったらサポートをしてみませんか?