プログラミング

定期的にツイートする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 Programming

ソフトウェアにおける日付・時刻フォーマット

目次ソフトウェアにおける日付・時刻フォーマット参考情報ISO 8601RFC 5322RFC 7231Common Log Format ソフトウェアにおける日付・時刻フォーマット ソフトウェア(特に …

QRコードの画像ファイルから内容を読み取るWebページを作りました

目次1. はじめに2. スクリーンショット3. URL4. 操作と内容5. ソースコード6. 参考情報 1. はじめに QRコードの画像ファイルから内容を読み取る を作りました。 2. スクリーンショ …

JavaScript

WebSocket を使ったサンプルプログラムを作りました

目次1. はじめに2. スクリーンショット3. 動作4. 大まかな動作イメージ 1. はじめに WebSocket を使ったサンプルページを作りました。Node.js を使っています。 ソースコードは …

Web Programming

History API のメモ

History API についての簡単な説明を書きました。 「History API の概要を思い出したくなった時に、ざっと眺める」というのがこのページの主な目的です。 目次1. History AP …

JavaScript でスライドを作ってみました

JavaScript でスライドを作ってみました。 window.history オブジェクトの使い方も参考になるかと思います。 目次1. スクリーンショット2. デモページ3. 内容4. ソースコー …