初心者向け!PythonでTwitterに自動ツイートするプログラムを作る方法

Twitter使いこなしてますか?

今回はTwitter APIを利用して、自動ツイートするプログラムを作ってみます。ようするにbotですね。

1から作ることで拡張性が無限に広がりますし、他のサービスやAPIを組み合わせることで手軽に面白いbotが作れます。
はじめの一歩ということで簡単なプログラムを作っていきましょう。

事前準備

はじめに下記のページからTwitterにアプリ情報を登録します。
※作成するアプリが具体的に決まってない場合は仮の情報で大丈夫です。

https://apps.twitter.com

ホーム画面

ホーム画面
ホーム画面

Create New App」ボタンをクリックします。

アプリ設定画面

アプリ設定画面
アプリ設定画面

登録するアプリの情報を入力します。

  • Name:アプリの名称
  • Description:アプリの説明
  • Website:アプリを公開するWebサイト
  • Calback URL:認証成功時に通知するURL ※省略しておk

※具体的に決まってない場合は適当に入力して確定次第更新しましょう。

エラー発生時

未認証エラー
未認証エラー

Twitterアカウントに電話番号が登録されていない場合は認証エラーメッセージが表示されます。
下記ページを参考に登録を行いましょう。

https://help.twitter.com/ja/managing-your-account/how-to-add-a-phone-number-to-your-account

アプリ設定情報画面(1)

アプリ設定情報画面(1)
アプリ設定情報画面(1)

設定が完了したら「Create my access token」ボタンをクリックします。

アプリ設定情報画面(2)

アプリ設定情報画面(2)
アプリ設定情報画面(2)

Twitter APIを利用するための各種APIキーを控えておきましょう。

  • consumer_key
  • consumer_secret
  • token
  • token_secret

実装

まず必要なライブラリをインストールしましょう。


$ pip install twitter
$ pip install python-dotenv

Twitterにツイートを投稿するプログラムを実装してみます。

まずは取得したAPIキーを設定するファイル。


TW_CONSUMER_KEY='〜'
TW_CONSUMER_SECRET='〜'
TW_TOKEN='〜'
TW_TOKEN_SECRET='〜'

設定した値を読み込みます。


import os
from dotenv import find_dotenv, load_dotenv
# find .env automagically by walking up directories until it's found, then
# load up the .env entries as environment variables
load_dotenv(find_dotenv())
TW_CONSUMER_KEY = os.environ.get('TW_CONSUMER_KEY')
TW_CONSUMER_SECRET = os.environ.get('TW_CONSUMER_SECRET')
TW_TOKEN = os.environ.get('TW_TOKEN')
TW_TOKEN_SECRET = os.environ.get('TW_TOKEN_SECRET')

メインとなるプログラムです。


import config
from twitter import *

def main():
  t = Twitter(
  auth=OAuth(config.TW_TOKEN, config.TW_TOKEN_SECRET, config.TW_CONSUMER_KEY, config.TW_CONSUMER_SECRET))
  
  msg = 'テスト投稿ですm(_ _)m' # Post a message
  t.statuses.update(status=msg)

if __name__ == '__main__':
  main()

自動ツイートする方法

cronを利用して、作成したプログラムを自動実行します。
cronの詳細はこちらをご覧ください。

cron の設定ガイド


$ crontab -e
# 追加(毎時0分にプログラムを実行する)
0 * * * * cd /Users/hoge/twitter-bot/; python /Users/hoge/twitter-bot/main.py

※パスは環境に応じて変更してください。

ソースコード

GitHubに公開しています。

https://github.com/yusukeito58/twitter-bot

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

Yusuke Ito

20代後半プログラミング未経験から転職し、現在はWEBエンジニアとして働いています。 バックエンドが本職ですが、1人でサービスを立ち上げるためフロントエンドも勉強中です。 最近はDAppsやNEMの開発に夢中です。