人生なんて暇つぶし

Webエンジニアの雑記ブログ。技術の話題はDApps開発、NEMアプリ開発がメイン。

移転しました。

約3秒後に自動的にリダイレクトします。

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

f:id:maroemon58:20180430152630p:plain

Twitter使いこなしてますか?

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

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

事前準備

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

apps.twitter.com

ホーム画面

ホーム画面
ホーム画面
Create New App」ボタンをクリックします。

アプリ設定画面

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

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

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

エラー発生時

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

help.twitter.com

アプリ設定情報画面(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))
        
    # Post a message
    msg = 'テスト投稿ですm(_ _)m'
    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に公開しています。

github.com

twitter.com