はじめに
学生のみなさん、クラスラインでの連絡ってめんどくさいですよね。
そこで!
クラスラインに時間割と提出物の連絡をしてくれるBotを作成してみませんか?
ということで、
今回の内容
クラスラインで時間割連絡をしてくれるBotの作り方を解説!
ではレッツゴー!
制作にあたって
完成品
毎日おなじ時刻に連絡してくれます!
使用するもの
・Line Notify(Botを作成するため必要)
・Python3(プログラムを実行する)
・グーグルスプレッドシート(課題のデータベース)
・タスクスケジューラー(定期実行のために必要)
制作条件
・時間割は毎週同じ
・定期実行させることを考える
実際に作成しよう!
完成コード(飛ばし読み可)
import requests
import datetime
import gspread
from oauth2client.service_account import ServiceAccountCredentials
kadai=wks.get_all_values()
TOKEN = '取得したトークン'
#APIのURL
#送りたい内容
time = datetime.datetime.now()
time = time.strftime('%m月%d日')
today = datetime.datetime.today()
youbi=today.weekday()
Youbi=["月","火","水","木","金","土","日"]
nittei=[
["英1","保体","英文法","-"],
["基数I","地理","化学IA","-"],
["製図","体育","国語I","特活"],
["基数I","生地学","化学","-"],
["-","-","-","-"],
["-","-","-","-"]
]
text="""
・{}
"""*len(kadai)
send_contents = f"""
{time}({Youbi[youbi]})です。
--【日程】--
(1){nittei[youbi][0]}
(2){nittei[youbi][1]}
(3){nittei[youbi][2]}
(4){nittei[youbi][3]}
------
があります。
--【近日課題】--
{text}
------
""".format(*kadai)
TOKEN_dic = {'Authorization': 'Bearer' + ' ' + TOKEN}
send_dic = {'message': send_contents}
1.Line Notifyへの登録
以下のサイトで解説されているように、Line Notifyの登録を済ませ、トークンを発行してください。
2.スプレッドシートAPIへの登録&JSONキー習得
できたら、スプレッドシートファイルを作成してID等をメモっておいてください。
3.コードを書く
(1)ライブラリのインポート
import requests
import datetime
import gspread
from oauth2client.service_account import ServiceAccountCredentials
(2)スプレッドシートへ接続
kadai=wks.get_all_values()
(3)Line Notifyへ接続
TOKEN = '取得したトークン'
(4)送りたい内容を記述(ここをアレンジするといいかも!)
time = datetime.datetime.now()
time = time.strftime('%m月%d日')
today = datetime.datetime.today()
youbi=today.weekday()
Youbi=["月","火","水","木","金","土","日"]
nittei=[
["英1","保体","英文法","-"],
["基数I","地理","化学IA","-"],
["製図","体育","国語I","特活"],
["基数I","生地学","化学","-"],
["-","-","-","-"],
["-","-","-","-"]
]
text="""
・{}
"""*len(kadai)
send_contents = f"""
{time}({Youbi[youbi]})です。
--【日程】--
(1){nittei[youbi][0]}
(2){nittei[youbi][1]}
(3){nittei[youbi][2]}
(4){nittei[youbi][3]}
------
があります。
--【近日課題】--
{text}
------
""".format(*kadai)
私は、
・今日の日付
・時間割(曜日を使ってリストにアクセス)
・課題
を連絡するようにしています。
(5)メッセージ送信
TOKEN_dic = {'Authorization': 'Bearer' + ' ' + TOKEN}
send_dic = {'message': send_contents}
連絡する課題を変えるには?
スプレッドシートを開いてください。
このように課題を管理することで、問題なく動きます。
定期実行させよう!
詳しくは下の記事で解説されています
うまくいくと…
このようになります!