python PR

pythonでtwitter botを作成してみよう【サンプルコードあり】

python twitter bot
記事内に商品プロモーションを含む場合があります

これまでpythonでtwitter APIを使用して自動化する方法について解説をしてきました

今回の記事では、pythonでtwitter botを作成していきたいと思います

2024/4/13追記

TwitterのAPIが有料化してしまいましたが、APIキーがなくてもbotを作成できるPythonプログラムを作成したので、参考にしてください

pythonでtwitterを操作してみたい

pythonでtwitterのbotを作成したい

pythonでtwitterを自動化したい

といった方に向けて、書いていきます!

以下の記事では、pythonでtwitterを使う方法をまとめて解説しているので、参考にしてみてください

pythonでtwitterを使ってみよう

pythonでtwitterを扱えるようになると、twitterで行われている懸賞に自動で応募することができるようになります

コピペでOK!アフタフォロー付きのtwitter懸賞自動化コード

また、twitterアフィリエイトを自動化することもできます

コピペでOK!pythonを使ってtwitterアフィリエイトを自動化しよう

pythonでtwitter botを作成する準備

python twitter bot 準備

まずはpythonでtwitter botを作成するための準備を行なっていきましょう

twitter APIを取得する

pythonでtwitterを操作するためには、twitter APIを取得する必要があります

下記記事でかなり詳しくtwitter APIの取得方法を解説しているので、そちらの記事を参考にしてください

pythonでtwitter APIを使用する方法
pythonでtwitter APIを取得する方法【全18枚の図解+例文あり】twitterのAPI取得は年々厳しくなってきています。今回は筆者が2022年にpythonでtwitter APIを取得するために行なった方法を図解+例文つきで紹介していきます。pythonでtwitterを利用する際には、twitter APIの取得が必須になるので、参考にしてください。...

各種APIキーを取得する

twitter APIの申請→利用権限を取得できたら、各種API関連のキーを取得していきます

必要なキーは4種類

  • Consumer Key(API Key)
  • Consumer Secret(API Secret)
  • Access Token
  • Access Token Secret

https://tools.tsukumijima.net/twittertoken-viewer/

上記のサイトを使えば、Access TokenとAccess Token Secretは取得することができます

tweepyのインストール

pythonでtwitterを操作するためには、tweepyが必要になります

Macならターミナル、Windowsならコマンドプロンプトで以下のコマンドを入力します

pip install tweepy

これでpythonでtwitterを操作する準備は出来ました

あとはコードを書いていきましょう

pythonでtwitter botを作成するコード

python twitter bot

定期的にツイートするbot

まずは定期的にツイートするbotを作るためのコード

import random
import tweepy

#****には自身のコードを入力してください
CONSUMER_KEY = '****'
CONSUMER_SECRET = '****'
ACCESS_TOKEN = '****'
ACCESS_SECRET = '****'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

#****にツイートしたい内容を入力していきます.「,」で区切ることで、複数登録できます
tweetlist=["****"]
#リストに含まれるツイート内容をランダムでツイート
api.update_status(random.choice(tweetlist))

Pythonのコードを定期的に自動で実行させるためには、レンタルサーバーを使って、定期実行させる必要があります

定期実行の設定も行いたい場合には、以下の記事も参考にしてください

pythonをレンタルサーバーで実行する方法 【lolipop編】
レンタルサーバーでPythonを動かす!lolipopを使った手順とポイントレンタルサーバーを使えば、pythonを決まった時間に自動で実行することができます。2022年11月までは、Herokuというサービスを使えば定期実行することができましたが、11月末から有料化してしまい、乗り換えを検討している方も多いと思います。lolipopというレンタルサーバーは、月額440円からなので、Herokuに課金するよりも安く済みますので、おすすめです。今回はlolipopを使って、pythonをレンタルサーバ上で定期実行する方法について解説をしていきたいと思います。...

リアルタイムに応答するbot

特定のキーワードがツイートされたら、それに対してリアルタイムに応答する

import tweepy

#****には自身のコードを入力してください
CONSUMER_KEY = '****'
CONSUMER_SECRET = '****'
ACCESS_TOKEN = '****'
ACCESS_SECRET = '****'

#****にキーワードを入力
word="****"
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

class MyStreamListener(tweepy.Stream):
    def on_status(self, status):
        if 'RT @' not in status.text[0:2]:
            if 'http' not in status.text:
                api.retweet(id=status.id)

#それぞれのキーを入力
myStreamListener = tweepy.Stream('CONSUMER_KEY here',
                                    'CONSUMER_SECRET here',
                                    'ACCESS_TOKEN here',
                                    'ACCESS_SECRET here')
#myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
        
myStreamListener.filter(track=[word], threaded=False)

今回のサンプルコードでは、「****」というツイートに対して、リアルタイムでリツイートする、という内容になっています

「****」を好きなワードに変更することで、そのワードがツイートされたらリアルタイムでリツイートします

tweepy.streamの使い方はレファレンスを参考にしてください

Pythonを使ってTwitter APIキーなしでbotを作る

これまでTwitterのbotを作成するためには、APIキーが必要でした

ここからは2024年度版のPythonを使ってTwitter APIキーなしでbotを作る方法を紹介します

具体的にはPythonのライブラリである「Twikit」を使用します

Twikitとは

TwikitはAPIキーなしで、スクレイピングを活用してツイートしたりツイートの検索、ツイート・トレンドの取得が可能なPythonライブラリです

Twikitとlolipopを使うことで、指定した時間にツイートを行うbotを作成することが可能

Twikitの特徴

Twikitの特徴は、APIキーなしで無料でTwitter botを作成することができる点です

APIキーを使用しないため、制限なく利用できます
※凍結リスクはあります

Twikitを使ってPythonでTwitter botを作成する

では実際にTwikitを使ってTwitter botを作成していきます

Twikitの使い方

まずはTwikitをインストールしましょう

pip install twikit

インストールが完了したら、ライブラリをインポートして、クライアントを定義します

クライアントの第一引数には言語を指定しますが、日本人の場合は「ja」でOK

from twikit import Client

client = Client('ja')

スクレイピング技術を活用しているので、アカウントにログインする必要があります

第二引数のメールアドレスはなくても大丈夫です

client.login(
    auth_info_1='username',
    auth_info_2='xxxx@example.com',
    password='password'
)

これでTwitterアカウントにログインできるようになりますが、ログインするたびにアカウントに通知が出ます

煩わしいので、cookieを保存・読み込ませて、通知が出ないようにします

# ログイン情報を cookies.json に保存する
client.save_cookies("cookies.json")

次にcookieを読み込ませます

# ログイン情報を cookies.json から読み込む
client.load_cookies("cookies.json")

これでログインするたびに通知が出なくなります

ツイートを行うには、create_tweetです

# ツイートを作成
client.create_tweet("テスト")

画像や動画のツイートも可能

ローカル環境の画像や動画を読み込むには、upload_mediaを使用

# ローカルの画像をツイート
media_list = [
    client.upload_media("xxx.png"),
    client.upload_media("xxxx.mp4", wait_for_completion=True)
]

client.create_tweet("テスト", media_list)

wait_for_completionをTrueにしておくと、ファイルがアップロードされるまで待機します

ツイートの検索を行うには、search_tweetを使用します

#記事作成時のトピックを検索してます
tweets = client.search_tweet("コナンの映画", "Latest")
for tweet in tweets:
    print("-------------------------------")
    print(tweet.text)

次にいいねとリツイートです

いいねはtweet.favorit()

リツイートはtweet.retweer()です

Latestは最新ツイートの検索です

Topicにすることで、話題のツイートを取得可能

また、第三引数の「5」はいくつのツイートをいいね・リツイートするかを決めています

tweets = client.search_tweet("コナンの映画", "Latest", 5)
for tweet in tweets:
    tweet.favorite()
        tweet.retweet()

他にもユーザー検索やタイムライン検索などもできますが、頻繁に使用するのはここら辺だと思いますので、他の機能が気になる方は、ドキュメントを確認してください

from twikit import Client

client = Client('ja')

client.login(
    auth_info_1='username',
    auth_info_2='xxxx@example.com',
    password='password'
)

# ログイン情報を cookies.json に保存する
client.save_cookies("cookies.json")

# ログイン情報を cookies.json から読み込む
client.load_cookies("cookies.json")

# ツイートを作成
client.create_tweet("テスト")

# ローカルの画像をツイート
media_list = [
    client.upload_media("xxx.png"),
    client.upload_media("xxxx.mp4", wait_for_completion=True)
]

client.create_tweet("テスト", media_list)

#記事作成時のトピックを検索してます
tweets = client.search_tweet("コナンの映画", "Latest")
for tweet in tweets:
    print("-------------------------------")
    print(tweet.text)

tweets = client.search_tweet("コナンの映画", "Latest", 5)
for tweet in tweets:
    tweet.favorite()
        tweet.retweet()

lolipopを使って定期実行するやり方はこちらの記事を参考にしてください

pythonをレンタルサーバーで実行する方法 【lolipop編】
レンタルサーバーでPythonを動かす!lolipopを使った手順とポイントレンタルサーバーを使えば、pythonを決まった時間に自動で実行することができます。2022年11月までは、Herokuというサービスを使えば定期実行することができましたが、11月末から有料化してしまい、乗り換えを検討している方も多いと思います。lolipopというレンタルサーバーは、月額440円からなので、Herokuに課金するよりも安く済みますので、おすすめです。今回はlolipopを使って、pythonをレンタルサーバ上で定期実行する方法について解説をしていきたいと思います。...

また、しばらくしたら懸賞に自動応募するやり方などもアップしていこうと思います

Pythonを未経験から学ぶのにおすすめのプログラミングスクール

DMMWEBCAMP

DMMWEBCAMP

  • WEBCAMPはコスパ最強
  • WEBCAMPは初心者に優しい充実したサポート付き
  • 16週間プランを選択して、返金してもらおう

WEBCAMPの公式ページはこちら
WEBCAMPの口コミ・評価はこちら

テックアカデミー 

  • テックアカデミーは費用対効果抜群
  • テックアカデミーのサポートは個人の能力に応じつつ、python初心者に優しい
  • まずは無料体験でテックアカデミーを知ってから受講を決める

テックアカデミーの公式ページはこちら
テックアカデミーの口コミ・評価はこちら

キカガク

  • 多種多様なスキルコース
  • 初心者から専門家まで対象
  • 給付金利用で費用を抑えられる

キカガクの公式ページはこちら
キカガクの口コミ・評価はこちら

Aidemy Premium

  • 完全オンラインで、時間や場所に縛られず学習したい
  • マンツーマン学習サポートにより実践に近い経験をしたい
  • 未経験から機械学習エンジニアになりたい

Aidemy Premiumの公式ページはこちら
Aidemy Premiumの口コミ・評価はこちら

Tech Mentor

  • 完全オンラインで、時間や場所に縛られず学習したい
  • マンツーマン学習サポートにより実践に近い経験をしたい
  • 未経験から機械学習エンジニアになりたい

Tech Mentorの公式ページはこちら
Tech Mentorの口コミ・評価はこちら

おすすめプログラミングスクール

DMMWEBCAMP
  • WEBCAMPはコスパ最強
  • WEBCAMPは初心者に優しい充実したサポート付き
  • 16週間プランを選択して、返金してもらおう
WEBCAMPの公式ページはこちら WEBCAMPの口コミ・評価はこちら
テックアカデミー  
  • テックアカデミーは費用対効果抜群
  • テックアカデミーのサポートは個人の能力に応じつつ、python初心者に優しい
  • まずは無料体験でテックアカデミーを知ってから受講を決める
テックアカデミーの公式ページはこちら テックアカデミーの口コミ・評価はこちら
キカガク
  • 多種多様なスキルコース
  • 初心者から専門家まで対象
  • 給付金利用で費用を抑えられる
キカガクの公式ページはこちら キカガクの口コミ・評価はこちら
Aidemy Premium
  • 完全オンラインで、時間や場所に縛られず学習したい
  • マンツーマン学習サポートにより実践に近い経験をしたい
  • 未経験から機械学習エンジニアになりたい
Aidemy Premiumの公式ページはこちら Aidemy Premiumの口コミ・評価はこちら
My Agile Privacy
This website uses technical and profiling cookies. Clicking on "Accept" authorises all profiling cookies. Clicking on "Refuse" or the X will refuse all profiling cookies. By clicking on "Customise" you can select which profiling cookies to activate.