最近Twitterで記事の紹介をするようにしているのですが、サイトの紹介を自動で定期実行してもらいたいなと思って作ってみました。
pythonで作ってしまうのが一番はやいと思ったので、今回はpythonでやってみたいと思います。
とりあえず作ってみよー程度の気持ちで始めましたが、15分ほどで完成したのでご紹介したいと思います。
自動投稿用のコード作成
自動投稿に必要なファイルは2つです。
ひとつにまとめてしまっても問題ないですが、TwitterAPIの認証情報があるので念の為分けて作成していきます。
(TwiiterAPI認証情報はすでに取得している前提で進めていきます。)
認証情報用ファイル
credential.py
API_KEY = 'API Keyを入力'
API_SECRET = 'API Secret Keyを入力'
ACCESS_TOKEN = 'Access Tokenを入力'
ACCESS_TOKEN_SECRET = 'Access Token Secretを入力'
以上で大丈夫です。
認証情報なのでそれぞれの変数には自分の環境に合わせたものを代入してください。
自動投稿用のファイル
twitter_bot.py
from credential import *
from requests_oauthlib import OAuth1Session
from http import HTTPStatus
from datetime import datetime
def post_tweet(body):
twitter = OAuth1Session(
API_KEY, API_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET
)
res = twitter.post("https://api.twitter.com/1.1/statuses/update.json", params={"status": body})
print(res)
if res.status_code == HTTPStatus.OK:
print("Successfuly posted")
else:
print(f"Failed: {res.status_code}")
def main():
body = "【定期】\n話題の漫画・アニメ・ゲームの最新情報や、IT系のチップスをご紹介してます😊\nWebサイト制作の無料相談もしてますので、お気軽にご連絡ください!!\n\n#ゲーム #アニメ #WordPress #Webサイト制作\nhttps://mofumofu-tips.com/"
post_tweet(body)
if __name__ == '__main__':
main()
私が実際に使っているコードを載せておきました。
これを実行すると、以下のようにきちんと投稿されます。
ライブラリーが不足している場合は随時pipでインストールしてください。
bodyの中身を投稿したい内容にして投稿してみてください!
定期実行したい場合
自動投稿まではさくっとできましたね。
このままでは1回だけの実行になってしまうので、定期実行させていきましょう。
cronを利用して定期実行してもらう
定期実行といえばcronということで、設定ファイルを作成して定期実行させましょう。
.crontab.txt
40 18 * * * /usr/bin/python /path/to/yourcode/twitter_bot.py
私は毎日18時40分に自動投稿してほしかったのでこのような設定にしました。
実行内容のログを残しておきたい場合は随時追加しておいてください。
この設定ファイルをサーバーにアップロードして以下のコマンドを叩いておけば自動定期実行されます。
crontab .crontab.txt
これだけで大丈夫です。
Twitterの自動定期実行まとめ
たったこれだけで自動的に投稿してくれるなんて本当に楽ですね。
実際に私が運営しているTwitterに自動投稿されていますので、どんな感じに投稿されるのか気になった方はチェックしてみてください!