LoginSignup
14
8

More than 3 years have passed since last update.

位置情報を使ってSlackのステータスを更新してみた

Last updated at Posted at 2020-02-12

はじめに

第3回「研究室のみんなそれぞれ1日使って何か作ろう!」の日。
他のメンバーの記事:
プログラミング初心者がSwiftでマルバツゲームのiOSアプリ作ってみた
指定したユーザーのツイートをしゃべるRaspberry Piの作り方

研究室のメンバーや先輩、先生とSlackで話をしながら「今学校いる?」とよく聞かれる。
Slackには「ステータス」という便利な機能があり、これを都度変更すればSlackのメンバー全員が僕の状況を把握できる。
スクリーンショット 2020-02-12 17.41.31.png
でも毎回自分で変更するのはめんどくさいし変更し忘れていたら元も子もない。

自分で操作することなく、学校に来たらSlackのステータスを「学校」、それ以外の時は「外出」などにしたい!

既存の記事

探してみたら「コレコレ!」となるものがあった。
オフィスにいる間は、Slackのステータスを自動で会社の絵文字 🏢 にする
定めたWifiに携帯が繋がったらSlackのステータスを「会社」にするという内容だ。しかしこの「Wifiに繋がったら〜」のトリガーがAndroidにしかないみたい。僕を含め研究室のメンバーはほとんどiPhone使いなので渋い。

次に見つけたのがこの記事だ。
【IFTTT】会社を出たらSlackに自動投稿するレシピの作り方
位置情報に従って、会社を出たらSlackに自動投稿するという内容である。位置情報のトリガーはiPhoneでも使えるっぽい。

上の2つの記事を組み合わせて、位置情報を使ってslackのステータスを更新することにした。

Slackでtokenを取得

下の記事を参考にさせていただいた。
Slack API 推奨Tokenについて

Appを作成したら「OAuth & Permissions」のタブへ。
スクリーンショット 2020-02-12 17.02.54.png

Permission scopesの設定。users.profile.setをみてみると、ステータスを変更するためにはusers.profile:writeが必要と書いてあるのでそれを追加。
スクリーンショット 2020-02-12 17.06.08.png

「Install App to team」を押せばtokenが発行される。

※以後、このtokenを<slack_token>と記述する。

IFTTTで位置情報と関連付ける

※学校に来たときの挙動のみ説明する。Locationのenterとexitを逆にすれば学校から帰るときの設定ができる。

上記の「既存の記事」2つを参考にさせていただいた。

IFTTTのページに行って「Explore」を押すと、「Make your own Applets from scratch」という文字が出てくる(めちゃ分かりにくい)。
スクリーンショット 2020-02-12 17.13.14.png

+ボタンを押して「This」のところに「Location」を選択。「You enter an area」を選択してエリアを指定する。
「That」のところには「Webhooks」を選択。「Make a web request」を選択する。
中身はこんな感じ。
スクリーンショット 2020-02-12 17.25.16.png
コピペ用

URL
https://slack.com/api/users.profile.set
Body
token=<slack_token>&profile={"status_text":"学校","status_emoji":":school:"}

これで「Create action」を押して名前を決めればAppletが完成する。

実験

設定したエリアから出ないといけないので、お散歩に行ってみた。
エリアから出たときのステータス:
スクリーンショット 2020-02-12 17.33.03.png
エリアに帰ったときのステータス:
スクリーンショット 2020-02-12 17.34.09.png
できたー

まとめ

かなり簡単だった。ノーコードだったし。ただ、エリアを出てからSlackのステータスが変わるまでに多少時間がかかるっぽいので注意が必要。Slack側の更新頻度の問題かな?

IFTTTは簡単にいろんなことができて楽しい!

14
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
8