twitter運用を行なっている方は、毎日30-40ツイートを行なっている方もいるかと思います
「正直、毎日30-40ツイートはきつい…」
という方もいるのではないでしょうか
この記事では、twitter運用を行うためにあらかじめ作成しておいたツイート内容を1時間に1回ランダムで自動投稿する方法について解説をしていきたいと思います
pythonでtwitterを操作してみたい
pythonでtwitterに自動投稿したい
pythonでtwitterを自動化したい
といった方に向けて、書いていきます!
いいねやリツイートの自動化などを知りたい方は、以下の記事を参考にしてください

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

pythonでtwitter APIを使って自動投稿する方法
まずは全体のコードから
twitter APIの取得方法は後半で紹介していきます
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))
まずはtwitter APIの認証をさせます
その後、あらかじめリストに保存しておいたツイート内容を「random.choice」で選択し、ツイートを行います
これだけでOKです
ツイートをさせるためには「api.update_status」を使用します
SQLなどのデータベースを使用して、そこにツイート内容を保存・ツイート
というやり方を行なっている記事も見かけましたが、後述するHerokuを使用する際に煩わしいので、SQLなどは使わずに実行していきます
同じ内容を連続して自動投稿しないようにする
twitterでは同じ内容を連続して投稿できないようになっています
リストに入力しているツイート内容を連続で自動投稿してしまわないように、投稿時刻を追加することもできます
日付と現在時刻をあらかじめ取得しておき、変数(今回はdt)に入れておきます
その後、ツイート内容のリストを作成し、時刻が入っている変数を追加します
「”〇〇〇〇”+dt」でツイート内容+時刻でツイートすることが可能です
あとはリストに入れておくツイート内容を40-50件くらいにしておけば、時刻を入力せずとも連続で自動投稿してしまう可能性が減ります
import tweepy
import random
# timeモジュールを使った現在の日付と時刻の取得
import time
import datetime
'''
time
'''
t = time.time() # UNIX時間(1970/01/01 00:00:00からの経過時刻)を取得
dt_from_timestamp = datetime.datetime.fromtimestamp(t)
c_time = time.ctime(t) # UNIX時刻を文字列表現に変換
local_time = time.localtime(t) # ローカル時刻をtime.struct_time型として取得
gm_time = time.gmtime(t) # UTC時刻をtime.struct_time型として取得
asc_time = time.asctime(local_time) # 上のlocal_timeを文字列表現に変換
dt = datetime.datetime.strptime(asc_time, '%a %b %d %H:%M:%S %Y')
dt=str(dt)
'''
twitter
'''
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=[""+dt]
api.update_status(random.choice(tweetlist))
twitter APIの取得方法
pythonでtwitterを操作するためには、twitter APIの取得をする必要があります
tweepyのインストール
pythonでtwitterを使うためには、「tweepy」をインストールする必要があります
Macならターミナルで、windowsならコマンドプロンプトで以下のコマンドを打ちます
pip install tweepy
これでpythonでtwitterを使うための第一段階が終了です
pythonでtwitterを使うためにtwitter APIの承認を受ける
tweepyのインストールが終了したら、pythonでtwitterを使うためにtwitter APIの承認を受けましょう
- Developerに登録
- twitter APIの使用用途を説明
- twitter APIの申請→承認
ざっくり上記の流れになります
twitter APIの申請は年々厳しくなっていますが、2022年に承認を受けた方法はこちら

twitter APIの承認を受けたらcreate appを作る
twitter APIの承認を受けたらcreate appを作ります



画像の順番でも、API申請記事の方法でもOKです
twitter側でサードパーティアプリの許可をする
create appが終了したら、twitterアカウント側でサードパーティアプリの許可をします

よく見かける上記の画像のやつです
これを許可することで、pythonからTwitterに投稿することなどが出来ます
これでpythonでtwitterを使うための準備はOKです
pythonでtwitterに自動投稿する設定
あとはherokuを使ってtwitterに自動投稿する設定をしていくだけです
herokuでは,
- Every hour at…1時間に1回、決まった分に実行
- Every day at…毎日決まった時間に1度実行
- Every 10minutes…10分ごとに実行
の3種類で設定することができます
herokuにプログラムをデプロイ
herokuを使用して、自動投稿を行うには次の流れのようになります
- 新規アプリの作成
- githubにコードの保存
- herokuとgithubの連携
- herokuにアプリをデプロイ
- herokuスケジューラーの設定
ターミナルを起動し、herokuにログインします
heroku login
ログインすると、何かキーを押してくださいと表示されるので、何かキーを押します
heroku: Press any key to open up the browser to login or q to exit:
キーを押すと、ブラウザでherokuにログインするように求められるので、ログインします
ログインに成功したらターミナルに戻ります
herokuに新規アプリを作る
ログインができたら、ターミナルに戻り、最初に作成したデスクトップ上のフォルダに移動します
cd XXXXXXXXXX(フォルダのパス名)
その後、herokuに新規アプリを作ります
heroku create xxxxx(好きなapp名)

app名が他の人が使用していると、使えず上記のように「Name pythonauto is already taken」と表示されます
そういう場合には、
heroku create
だけ入力すれば、勝手にapp名が作られます

appの作成がうまくいくと、上記のようになります
githubにコードを保存する
appの作成までうまくいったら、githubにコードを保存していきます
githubにログイン後、右上「+」から「New repository」をクリックし、新たなレポジトリを作成していきます
レポジトリの名前を求められるので、好きな名前を入力し、「Private」にチェックを入れ、「Create repository」をクリックします

その後、以下の画面になるので、「uploading ~~~」をクリックし、デスクトップ上のフォルダに保存している3つのファイルをドラッグで追加します


ドラッグ後、真ん中あたりにドラッグしたファイルが表示されていればOKです
左下、緑のボタンをクリックします
そうすると以下のようにファイルが追加されます

githubへの登録はこれでOKです
herokuとgithubを連携する
ここまで来たらあと少しでおしまいです
herokuとgithubを連携させていきます
herokuのwebサイトに移り、先ほど作成したapp名をクリックします

その後「deploy」をクリックし、githubとの連携を行います

githubをクリックすると「search」が出てくるので、クリック

その後、下にレポジトリがいくつも出てくるので、先ほど作成したレポジトリをクリックします

connectが成功したら、「deploy」タブがあったとこの一番右側「setting」に移ります
settingの「Add building」からpythonを選択していきます



Addが完了したら、「deploy」タブに戻り、githubが「connected」になっているのを確認しましょう

「connected」になっていたら、下までスクロールして「deploy Branch」をクリックします


デプロイに成功すると以下のようになります

これでherokuとgithubの連携は終了です
ターミナルに戻って、herokuにデプロイしていきます
herokuにアプリをデプロイ
ターミナルに戻り、
$ git init
$ git remote add heroku XXXXXXXXXXXXXX
$ git add .
$ git commit -m "aap commit"
$ git push heroku master
順番に入力していきます
「XXXXXXXXXXXXX」の部分はherokuのsettingタブのheroku git URLに書いてあります
またさ、最後の「git push heroku master」で「master」でうまくいかない場合には「main」に変更して、登録を行います
最後までうまくいくと、以下のようになります

これでherokuにデプロイできました
最後にスケジューラーの設定です
herokuスケジューラーの設定
Heroku Schedulerを使う場合は無料枠の範囲でもherokuにクレジットカードを事前に登録しておかなければいけません。
(プランを変えない限り勝手に課金されることはありません。)
herokuのAccount settingからbillingタブに移り、カード情報を登録していきます

カードの登録が終わったら、スケジューラーを追加していきます
ターミナルに移り、
heroku addons:add scheduler:standard
と入力します
するとアドオンの追加ができます
その後、
heroku addons:open scheduler
と入力を行い、詳細設定を行っていきます
ブラウザが立ち上がったら、「Create job」をクリックします


時間は毎時〇〇分など色々決められますので、好きな時間を選びましょう
また、「$」には、起動するpythonファイルを記入します
必ず「.py」ファイルを選び「python 〇〇.py」と記入します
〇〇はデスクトップ上に保存しているコードの名前です
また、時刻がUTCになっているため、表示されている時間+9時間が日本時間になりますので、気をつけてください
起動したい時間を設定したら、「Save job」をクリックして終了です
より詳しい内容は、noteの無料部分に記載しているので、そちらも参考にしてください
pythonを使ってtwitterの自動化-twitter運用効果あり-
まとめ
- pythonを使ってtwitterに自動投稿するには、twitter APIが必要
- api.update.statusでツイート可能
- twitterでは同じ内容の連続投稿が許可されていないので、対策が必要
- herokuで自動投稿の定期実行を設定する
python初心者がpythonを学び始めて1年未満で5桁の収益を出した方法

pythonの知識・技術を身につけたいなら、pythonが学べるプログラミングスクールに行くのも、一つの方法です
以下の記事では、pythonが学べて無料体験ができるおすすめのプログラミングスクールを紹介しています
