タイトルの通り作業の進捗を定期的にTwitterで呟くアプリをPythonで作ってみました.
自分がサボりやすいのでフォロワーに監視してもらいたいのと,作業量を可視化したいのが目的です.
ということで早速コードをどーん,と置きたいのですが丸々置くと邪魔なのでGithubのリンク:ProgressTweetを置いておきます.
主要部分だけ置いておくと,
import time
import tweepy
from tweepy import api
import datetime
if __name__=='__main__':
char_num = 0
num_diff = 0
consumer_key,consumer_secret,access_token,access_token_secret = getAllKeys()
auth = tweepy.OAuthHandler(consumer_key,consumer_secret)
auth.set_access_token(access_token,access_token_secret)
api = tweepy.API(auth)
wait_time = 1200
dt_now = datetime.datetime.now()
tweet_first = str(dt_now.hour) + "時" + str(dt_now.minute) + "分開始"
api.update_status(tweet_first)
while True:
char_num,num_diff = get_progress(file_name,char_num)
tweet_content = "二十分間の進捗は"+str(num_diff)+"字です."
api.update_status(tweet_content)
print(tweet_content)
time.sleep(wait_time)
こんな感じですかね.
因みに例によって例の如くすんなり作れなくて色々引っかかりました.
今回引っかかった点はTwitter APIの権限の問題ですね.
最初に↓
でAPI使うためにあれこれする必要があるんですけど,最初に取得した権限だけだと作ったアプリケーションに呟く権限がないので,アプリの権限をEssentialからElevatedにアップグレードする必要があります.
あと引っかかったのが"time.sleep()"ですね.
何故か知らないけどtimeをimportしたらVScodeで自動的に補完されてて,
import time from time
ってなってたんですけど,この表記だとhas no attributeって怒られるので
シンプルに
import time
って書き直す必要があります.
参考にしたサイト:Twitter APIで遊んでみた ~2. ツイートの投稿と取得~