【iOSだけでインストールできる！】iOSホームからアイコン押すだけで、退勤・休憩を打刻できるようにした【Slackに打刻】


新しい会社に入社しました :tada::sparkles::sparkles:

ありがとう！ ありがとう！

でも完全週休3日だったので、扱いがフリーランスになり、既存の打刻システムが使えないとのこと！
グワーーーーッ！！！
（それは仕方ない！！）

なので自分で、iOSのショートカットで実装しました！

![aaaaaaaaaaaaaaaaaaaa.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/f91bf754-78b7-665d-b420-cf4a13c0d36c.gif)

Slackで業務の打刻をしている非正社員のみなさんも、つかってみてください ><

![iOS の画像.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/71c42204-2942-bfe0-e647-8333e8a88aee.jpeg)

# インストール手順
## iOSショートカットの設定＆インストール

まずiOSの設定アプリから、これをオンにします
これは次の手順を行うためです :ok_woman: :sparkles: 

![2021-08-07 11.21.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/6323c63e-d828-2127-5a4d-ebd22d657a2e.png)

その後、次の7つをインストールします
前半3つは後半から呼び出されるショートカットで、後半が実際に打刻を行うショートカットです 

![2021-08-07 11.23.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/706263a9-d7fd-12a5-67a6-a6947cabe55c.png)

- ライブラリ
    - https://www.icloud.com/shortcuts/f2f41d62af1d46cebc1c9bf0361bf51c
    - https://www.icloud.com/shortcuts/a17314510004488bb3293ad5cd5b8369
    - https://www.icloud.com/shortcuts/a2077107129b4b02ad86645fd2df4fd2

- アクション
    - https://www.icloud.com/shortcuts/01676a47594a4c06883383fb151dd9d2
    - https://www.icloud.com/shortcuts/c3644ecbc8384551ae1f0549b3756353
    - https://www.icloud.com/shortcuts/686329f4a25548a5b6f149c4a1ac50aa
    - https://www.icloud.com/shortcuts/3a83635e2ddc4640899b233f7d949382

![File.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/ea4dd1da-4325-50dc-7ddb-a869a73c89eb.jpeg)

次に、実際に上記 'アクション' を使うためのSlackアプリを作成します :raising_hand: :sparkles:

## Slackアプリの作成

最初は下記ページを開き、画像の通りに進めていきます

- [Slack API | Slack](https://api.slack.com/)

![2021-08-07 11.02.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/ca1a7835-8040-fdf7-e7c8-ea2a2d013ad7.png)
![2021-08-07 11.04.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/23fb1e76-33bb-d2b4-1f02-706726783aaa.png)

'App Name' は特に常々表示させるものではないので、自由に決めてしまっていいと思います
'Pick a workspace to develop your app in' には、打刻したいSlackチームを選択します

![2021-08-07 11.05.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/4d6ee373-01d0-7115-aa6e-7d8762120bfe.png)
![2021-08-07 11.07.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/b3023a7b-27b5-5ce8-730e-4d6ece0ef5b6.png)

今回の「打刻するやつ」ではユーザー（自分）に投稿させるため、**Bot Token Scopesではなく**User Token Scopesに、下記3つの権限を付与します

![2021-08-07 11.14.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/9e865ac4-b9ff-0c5e-1d60-ba0ddf2f6db6.png)

画面を上がります

![2021-08-07 11.15.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/9bd9fc1d-5c8a-aa65-46d3-4801eab0710d.png)
![2021-08-07 11.16.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/9f383e68-e31e-adee-5833-7421962a2339.png)

iOSショートカットの「ライブラリ」3つに設定するために、この 'User OAuth Token' をコピーします！

![2021-08-07 11.17.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/db26002c-8186-0aab-5996-8132cee6fe91.png)

Slackアプリの設定は以上です

最後に**必要あれば**、打刻用のチャンネルをチームに作っておきます
（ここでは `#times-aiya000` ）
![2021-08-07 11.19.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/78433cd1-da33-8203-9f29-31889c93bf5c.png)

ここが大変なところでした
おつかれさまでした！ :sparkles:

## iOSショートカット「ライブラリ」の設定
### ライブラリ

「ライブラリ」3つそれぞれの編集画面を開いて（ `…` ボタンを押して）、変数`token`に、コピーしておいた 'User OAuth Token' をペーストします

![iOS の画像.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/18c482bf-b39e-9587-896e-6154471f1071.jpeg)


インストールした 'SlackPostMessage' の編集画面を開いて、下にスクロールし、変数 `channel` のテキストに打刻用チャンネル名を設定します
（
 `without-heading-sharp` とか書きましたが、ここのチャンネル名先頭に`#`を付けてもだいじょうぶでした！><
ナノデキニシナイデ
）

![2021-08-07 11.22.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/c806dc69-1bc1-7124-d70d-15a980305589.png)
![iOS の画像.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/4d558cc7-d414-49e2-a07e-33fedc181f0a.jpeg)
![File (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/e87044d2-3eef-b315-bb5f-6011eccd781a.jpeg)

### アクション

業務開始アクションのテキストを設定します

まずは「実際に投稿されるメッセージ」を設定してください
インストール時に設定されたそのままでも問題ありません
（職場的にOKならね！ :star: ）

その次に、業務開始を打刻したときに設定される、Slackプロフィールの '状態' を設定します

`:gyoumu_siteru:` みたいなemojiがチームにあるならjsonのemojiテキストに `:gyoumu_siteru:` を、textテキストに `"業務してる！！"` などを設定します

画像の通り、それぞれを空にしておけば、状態を初期化できます
（業務終了状態を解除できます）

最後の `0` は、「非通知モードをどのくらい後に解除するか」です
これは業務終了アクションで役に立つものなので、ここではスルーです

![2021-08-07 12.04.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/45a774e2-72fc-9311-812e-2d61864d7823.png)

次に業務終了・休憩開始・休憩終了アクションのテキストも、同様に設定します

![2021-08-07 12.06.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/cc70a086-0731-fb05-dfa4-b536089a7ee4.png)
![2021-08-07 12.07.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/7be8c434-b25f-e140-e4a6-c734f6e48ec6.png)

休憩時に非通知モードを設定したい場合は、ここで `500000` くらい（てきとうすぎるけど :thinking: ）を設定しておきます
僕は別に休憩中に通知がきてもかまわない（というかこまごまと休憩をとる派）なので、`0`を設定しています
![2021-08-07 12.08.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/38bb67ee-6b30-401a-44ca-d6ff52f1e2d2.png)

![2021-08-07 12.15.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/3299ddbc-3c3f-908c-3e0f-6b7730191758.png)

これで終わり！！！！
ほんとにおわりです！！！！！！！！！！！

おつかれさまでした！
楽しい打刻ライフをお楽しみください！

# 終わりに

「アクション」4つを「ホーム画面に追加」するとすごくべんりです！
ホーム画面から打刻できちゃいます！！
（本記事さいしょの動画を参照してください :raising_hand: :sparkles: ）

![2021-08-07 12.22.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/507dd304-f22c-87b4-07a7-d24adc0bd44e.png)

おつかれさまでした！
これで、完全に打刻ができます :ok_woman: :sparkles:

![iOS の画像.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/637285a2-106a-7e31-b7b2-c587441a63da.jpeg)

自動でSlackプロフィールの '状態' が変わる様子
![iOS の画像 (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/5d105cac-1fe0-2b16-4b7d-b067f3bb26bf.jpeg)

:recycle: 
![iOS の画像 (2).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84945/29698c14-60f2-f5a8-b6c1-4e82f125209e.jpeg)

ぜひ活用してみてね！><

# 諸注意

~~iOSショートカットを書くのがめんどすぎて、~~エラーハンドリングしていません
ちゅういしてね！

MITライセンスで配布してるので、改良してくれてもいいのよ＞＜

# 感想

~~iOSショートカットを書くのがめんどすぎた~~
たのしかった