プログラミング

定期的にツイートするbotをPythonで作る方法

投稿日:2017年6月1日 更新日:

Twitterでツイートを行う botプログラムを Python(プログラミング言語)で作ります。
このプログラムは、CentOS(Linuxの一種です)上で定期実行します。

スポンサードリンク

1. 動作概要

プログラムで以下の処理を行います。

  1. プログラムの中に複数のメッセージを用意しておく。
  2. ここからランダムにメッセージを選択する。
  3. このメッセージをツイートする。

このプログラムを、cron で定期実行させます。

2. 環境

  • CentOS 7.3
  • Python 2.7.5
  • Twitterを操作するライブラリとして、tweepy を使用します。

3. 事前準備

Twitter App を作成して APIキーなどを取得する

Twitter Application Management にて、Twitter App を作成します。

作った時点で、以下の情報を得ることができます。

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)

更に、Access Token というのも作成することで、以下の情報も得ることができます。

  • Access Token
  • Access Token Secret

これらは、あとで使うことになります。

4. プログラムを実行する予定のサーバーでの作業

4-1. 必要なライブラリのインストール

今回の環境では、Python 2.7.5 が既にインストールされていましたが、pip(Pythonのパッケージ管理ツール)が入っていなかったので、まずインストールします。

$ sudo yum install python-pip

pipを最新版にアップグレードします。

$ sudo pip install --upgrade pip

tweepy をインストールします。

$ sudo pip install tweepy

今回は一般ユーザーでプログラムを実行する予定なので、Pythonのライブラリのパーミッションを変更します。

$ sudo chmod go+rx -R /usr/lib/python2.7/site-packages/

これで、プログラムを書くための準備が整いました。

4-2. プログラムを書く

例として、/home/foo/twitter/bot.py というファイルにプログラムを書くとします。

このファイルに以下を記述します。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tweepy
import random

CONSUMER_KEY = "xxxxxxxxxxxx"
CONSUMER_SECRET = "xxxxxxxxxxx"
ACCESS_TOKEN = "xxxxxxxxxxxx"
ACCESS_TOKEN_SECRET = "xxxxxxxxxxxxx"

"""
ツイートする文字列
"""
STATUS_DATA = [
    ["1つ目のメッセージ"],
    ["2つ目のメッセージ"],
    ["3つ目のメッセージ"]
]


def main():
    makeApi().update_status(random.choice(STATUS_DATA))


def makeApi():
    """Return tweepy.API object"""

    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
    return tweepy.API(auth)


if __name__ == "__main__":
    main()

STATUS_DATA というリストに格納されたメッセージをランダムに取得して、ツイートするだけのプログラムです。エラー処理も書いておらず、最低限の記述になっています。

参考

4-3. 定期実行させる

今回は、一般ユーザーの crontab コマンドで cron を設定して定期実行させます。

次のコマンドで cron設定の編集を開始します。

$ crontab -e

以下を記述します。

10 9-19/3 * * * /home/foo/twitter/bot.py

この設定によって、9時から19時まで3時間毎に○時10分にプログラムが実行されます。

5. おわりに

今回の Pythonプログラムを改造して、より複雑なメッセージを動的に生成してツイートすることができます。

ちなみに、私は以下の書籍で Pythonの学習を始めました(版はもっと前のものでしたが)。かなり分かりやすかったです。

現在だと、こちらの本も評判が良さそうです。

📂-プログラミング
-, ,

執筆者:labo


comment

メールアドレスが公開されることはありません。

関連記事

web development

Web Development for Beginners を読む:レッスン2

目次1. はじめに2. Lesson 2: Introduction to GitHubIntroductionCode managementWorking on projects with othe …

WordPress

plugin-update-checker を使って WordPress のテーマに自動更新機能を実装する

目次1. はじめに2. テーマディレクトリに対する準備作業3. テーマを更新する手順3-1. テーマ提供者側3-2. 利用者側4. おわりに 1. はじめに plugin-update-checker …

Bootstrap

ボタンを押した直後に BootstrapのTooltipを数秒間表示する方法

ウェブページ上のボタンを押した直後に、Bootstrap の Tooltip を一定時間だけ表示する方法を紹介します。 スポンサードリンク 目次1. はじめに2. 参考になる情報3. プログラムの書き …

Web Programming

以前作っていた静的サイトの開発に関するメモ

以前、静的なツールでウェブサイトを作っていたのですが、その開発に関するメモです。完全にメモであることをご了承下さい。 目次方針使用しているツール新たなページを作成する時の大まかな流れ1. 新たなページ …

Python

Python でファイルを読み込み何か加工した結果を出力するコードの雛形

Python でファイルを読み込んで、何か加工した結果を出力するコードの雛形を紹介します。