LoginSignup
11
0

More than 3 years have passed since last update.

フレックス制だとプレミアムフライデーを感じれないからSlackのステータス変更した

Last updated at Posted at 2019-12-02

この記事は、ハンズラボ Advent Calendar 2019 3日目の記事です🎅

自己紹介

19新卒入社の @bakuwarorin です。(Twitterも同じID)
今は、POSレジを作っているPOSチームに所属し、主にSwiftを書いています🔰

好きな食べ物はしょっぱいもの(極論塩)
嫌いな食べ物はえのき(ノーコメント)
好きな場所は綺麗なトイレ (弊社ビルはめっちゃ綺麗)
嫌いな場所は汚いプールサイド (濡れてるとより❌)

今回は初めてAdventCalendarに参加してみました!

はじまり

プレミアムフライデーって知ってますか

Wikipediaより

2017年(平成29年)に日本国政府と経済界が提唱した個人消費喚起キャンペーンである。博報堂が事務局を受託している。月の最終金曜日に合わせて、民間企業はイベントやセールなどのキャンペーンを行っている。略称はプレ金

略称はプレ金 ← 知らなかった。

https://tech-camp.in/note/pickup/66465/ より

プレミアムフライデーを簡単に説明すると、「月末の金曜日は15時に仕事を終えましょう」というキャンペーンのことです。


らしいです。

なんですが、弊社フレックスタイム制を導入していて、入社から7回のプレミアムフライデーはいつもの金曜となんら変わらず過ごしてしまっています。純粋にプレミアムフライデーの陰が薄い説
(別に不満はない)

[記入日11/23]
11月のプレミアムフライデーの迫ってきてしまっています。
今月は手短なところでプレミアムフライデーを感じようと思っているので、Slackのステータスをプレミアムフライデーだけ変更するプログラムを作成しようと思いました。

第一段階

とりあえずステータスを変更してみます。

https://api.slack.com/ を見てみた。
https://api.slack.com/methods/users.profile.set があった。

スクリーンショット 2019-11-22 23.17.27.png

できたものが↓です。

change.py
#!/usr/bin/python

import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), "packages"))
import requests
import json

REQUEST_URL = "https://slack.com/api/users.profile.set"
USER_TOKEN = os.environ["USER_TOKEN"]
USER_ID = os.environ["USER_ID"]

def change_status(text, emoji):
  payload = {
    "token": USER_TOKEN,
    "profile": json.dumps({
        "status_text": text,
        "status_emoji": emoji
    }),
    "user": USER_ID
  }

  response = requests.post(REQUEST_URL, payload)
  print(response) # 確認用

if __name__ == "__main__":
  text = "SUSHI食べたい"
  emoji = ":sushi:"

  change_status(text, emoji)

実行してみます。

<Response [200]>

スクリーンショット 2019-11-12 14.43.15.png

無事、🍣 SHUSHI食べたい に変更できました🎉

第二段階

弊社Slackには大量のカスタム絵文字が登録されていて、もちろん(?)プレミアムフライデーもありました。
カスタム絵文字にできなかったら、この記事は終了してしまうので試しました。

change.py
text = "プレミアムフライデー"
emoji = ":premiumfriday:"

実行してみます。

<Response [200]>

スクリーンショット 2019-11-22 23.27.05.png

できたー!!

第三段階

最後にAWS lambdaのトリガーにCloudWatch Eventsを設定します。

スクリーンショット 2019-11-22 23.46.20.png

毎月最終金曜日の朝10時に発火するように設定

忘れてた

第三段階までで月末の金曜日にステータスが変わるんですが、有効期限(?)を設定していないため次の日も次の週もプレミアムフライデーになってしまいます。(それも悪くない🤩)
textとかemojiを設定したところにstatus_expirationという値(unixtime)を設定すればいいようです。

change.py
from datetime import datetime

~~

now = datetime.now().timestamp()
tomorrow = now + 50400  # 14時間後

payload = {
  "token": USER_TOKEN,
  "profile": json.dumps({
      "status_text": text,
      "status_emoji": emoji,
      "status_expiration": tomorrow
  }),
  "user": USER_ID
}

日付が変わる頃には気持ちを切り替えなければならないので14時間後にステータスが削除されるようにしました。

結果

[記入日11/29]
スクリーンショット 2019-11-29 10.44.02.png
成功した。今日は早く帰ろうかな🎉


ハンズラボ Advent Calendar 2019 4日目は @yktakaha4 さんです🎉

11
0
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
11
0