Twitterでツイートを行う botプログラムを Python(プログラミング言語)で作ります。
このプログラムは、CentOS(Linuxの一種です)上で定期実行します。
目次
1. 動作概要
プログラムで以下の処理を行います。
- プログラムの中に複数のメッセージを用意しておく。
- ここからランダムにメッセージを選択する。
- このメッセージをツイートする。
このプログラムを、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
というリストに格納されたメッセージをランダムに取得して、ツイートするだけのプログラムです。エラー処理も書いておらず、最低限の記述になっています。
参考
- tweepy のドキュメント
4-3. 定期実行させる
今回は、一般ユーザーの crontab コマンドで cron を設定して定期実行させます。
次のコマンドで cron設定の編集を開始します。
$ crontab -e
以下を記述します。
10 9-19/3 * * * /home/foo/twitter/bot.py
この設定によって、9時から19時まで3時間毎に○時10分にプログラムが実行されます。
5. おわりに
今回の Pythonプログラムを改造して、より複雑なメッセージを動的に生成してツイートすることができます。
ちなみに、私は以下の書籍で Pythonの学習を始めました(版はもっと前のものでしたが)。かなり分かりやすかったです。
現在だと、こちらの本も評判が良さそうです。