21
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PythonでTwitterBotを作ろう!

Last updated at Posted at 2020-02-02

TwitterBotとは

BotとはRobotが語源になっていて、自動でなんらかの処理をするもののことを指します。Twitterにおいて

  • 自動ツイートBot
  • 自動いいねBot
  • 自動フォローBot

など多岐にわたるBotが存在します。

Botのメリットは?

自動ツイートは通知のような役割を果たします。例えば、「好きなアーティストのライブ情報が更新された場合に自動でツイートする」といったものが挙げられます。
自動いいね、自動フォローは不特定多数の人に自分のアカウントを知ってもらうためのツールとしての働きがあります。これは例えば、自分のTwitterアカウントのPR活動などに使われます。

Botの作成手順

Botの作成手順は主に以下の3ステップです。

  1. Twitter Developer登録
  2. プログラム作成(Python)
  3. 定期実行登録(Cron)

実装

今回は定期的に現在時刻をツイートするBotを作成します。
詳細は以下の動画で紹介しています。

英語版
https://youtu.be/mmKXdLUhG_k

ソースコード

credential.py
CONSUMER_KEY        = '********'
CONSUMER_SECRET     = '********'
ACCESS_TOKEN_KEY    = '********'
ACCESS_TOKEN_SECRET = '********'


twitter_bot.py
from credential import CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET
from requests_oauthlib import OAuth1Session
from http import HTTPStatus
from datetime import datetime

def post_tweet(body):
    # 認証処理
    twitter = OAuth1Session(
        CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN_KEY, 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 = "テスト投稿2"
    now = datetime.now()
    post_tweet(now)


if __name__ == '__main__':
    main()

21
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?