この記事は、ハンズラボ 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 があった。
- 必要な値
- token: 発行した
- user: https://api.slack.com/methods/users.list/test 見つけた
- profile: ここに変更後の値を書く
できたものが↓です。
#!/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]>
無事、🍣 SHUSHI食べたい に変更できました🎉
第二段階
弊社Slackには大量のカスタム絵文字が登録されていて、もちろん(?)プレミアムフライデーもありました。
カスタム絵文字にできなかったら、この記事は終了してしまうので試しました。
text = "プレミアムフライデー"
emoji = ":premiumfriday:"
実行してみます。
<Response [200]>
できたー!!
第三段階
最後にAWS lambdaのトリガーにCloudWatch Eventsを設定します。
毎月最終金曜日の朝10時に発火するように設定
忘れてた
第三段階までで月末の金曜日にステータスが変わるんですが、有効期限(?)を設定していないため次の日も次の週もプレミアムフライデーになってしまいます。(それも悪くない🤩)
textとかemojiを設定したところにstatus_expiration
という値(unixtime)を設定すればいいようです。
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時間後にステータスが削除されるようにしました。
結果
ハンズラボ Advent Calendar 2019 4日目は @yktakaha4 さんです🎉