1分毎に「JUST DO IT」とLINE通知する無意味なツールを、そこそこ流行りの技術で作成した
2022/11/02追記
Googleから8円の請求が来たので、どこでコスト発生しているか調査します。以下のプロセスを実施すると、どっかでコスト発生する可能性があるので注意して下さい。読み物として楽しんでください。
PythonとLine Notify、およびGoogle Cloud PlatformのサービスであるCloud FunctionとCloud Schedulerを利用して、1分毎に「JUST DO IT」とLINE通知するツールを作成しました。
なぜそのような無意味なものを作ったか?
意味はありません。昨今、技術で業務効率化が叫ばれていますが、その流れに逆行したいという気持ちが、そうさせました。
強いて言うと
1分おきに「JUST DO IT」とLINE通知されるので、朝起きたら、大量のJUST DO IT通知があり、無意味感がすごくて、少し笑顔になれることです。トイレに行っている間にも通知は止まりません。
類似ツールを作りたい場合は以降もご参考ください。
ツールを構成する4つの技術を
世間的にはそこそこ流行している4つの技術を利用して作成しています。
Cloud Function
Googleのサービスの1つ。クラウド上にソースコードを格納して、そのコードを実行できます。このツールでは、LINEへ通知するPythonコードを格納しています。
Cloud Scheduler
Googleのサービスの1つ。定期実行などのタスクを設定できます。このツールでは、Cloud Functionに格納したPythonコードを定期実行させることに利用しています。
Line Notify
LINEのサービスの1つ。LINEと別アプリを連携して、LINE通知できる仕組みです。このツールでは、Pythonコードによって発信されたメッセージを受け取りLINE通知を実現しています。
Pythonのスクリプト
Pythonというプログラミング言語。このツールでは、「JUST DO IT」というメッセージをLine Notify宛に送信するコードを記述することで、LINE通知を実現しています。
ツール作成手順
Line Notifyのトークンを作る
LINE Notifyのページにアクセスします。
ログインしてトークンを発行します。
トークン名と通知先を入力して、トークンを発行します。
発行されたトークンをどこかにコピーします。後で利用します。
Cloud Functionに「JUST DO IT」をLINE通知するコードを格納
Cloud Functionのページにアクセスします。
2022/10現在、月200万回以上「JUST DO IT」と通知したい場合は有料になります。それほどJUST DO ITしたい場合は、お金を払いましょう。月200万回未満の場合は無料です。コンソールに移動します。
→2022/11/02追記、無料ではない可能性があります。Googleから8円の請求が来ました。原因を調査しているので、注意してください。
ヘッダーから新しいプロジェクト作成をクリックします。
適当にプロジェクト名を入力して、プロジェクトを作成します。
通知から新しいプロジェクトに移動します。
関数を作成します。
必要なAPIを有効化します。
以下の通り、入力します。環境は「第1世代」、関数名は何でもOK、リージョンは何でもOK、トリガーのタイプは「Cloud Pub/Sub」、トピックIDは何でもOKです。保存をクリックして、次へをクリックします。
以下のようにインプットします。ランタイムは「Python 3.7」、ソースコードは「インラインエディタ」、main.pyをクリックしてソースコードを記載。エントリポイントを「main」に設定。requirements.txtをクリックしてrequirement.txtを 編集。
# main.pyに入力するコード
import requests
def main(event, context):
line_notify_token = 'ここにLine Notifyトークンの英数文字列を入力する'
line_notify_api = 'https://notify-api.line.me/api/notify'
message = 'JUST DO IT'
headers = {'Authorization': f'Bearer {line_notify_token}'}
data = {'message': message}
requests.post(line_notify_api, headers = headers, data = data)
reqiirement.txtに入力してデプロイ。
# requirement.txtに入力するコード
requests
緑チェックマークがでたら、デプロイ完了。
Cloud Schedulerでスケジュール設定
Cloud Functionで検索かけてアクセスします。
ジョブを作成します。
以下のように入力します。名前は何でもOK、リージョンは何でもOK、頻度は1分おきを意味する"* * * * *"(←スペースで区切ったアスタリスク5個)、タイムゾーンは「日本」で続行。
以下のように入力。ターゲットタイプは「Pub/Sub」、トピックは選択リストから「projects/プロジェクト名/topics/トピックID」を選択。プロジェクト名とトピックIDは、前のプロセスで自身で作成したものです。メッセージに{}(←半角の中括弧)、作成をクリック。
おめでとうございます。これであなたのLINEは、1分おきにJUST DO ITが永久に送信され続けます。
さいごに意味のある学習コンテンツの紹介
もう少し意味のあるPythonの勉強をしたい場合は以下(私が制作したもの)をおすすめします。私が執筆した、初心者向けの学習コンテンツです。
ブロックチェーンをゼロからプログラミングする学習教材です。ブロックチェーン初学者向けに執筆されています。ブロックチェーン開発を通じてセキュリティーを学びたい方は、ぜひ無料公開の部分からお試しください。
Pythonを用いてジェネラティブNFTを作成・販売するUdemyコースです。デザイン初心者でもプログラミング初心者でも仮想通貨初心者でも、ジェネラティブNFTを出品できるよう構成しました。ご興味あればぜひご視聴ください。