プログラミング

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

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

関連記事

Python

Pythonのバージョンを切り替える pyenv の使い方

Pythonのバージョンを切り替える pyenv の使い方について説明します。

web development

Web Development for Beginners を読む:レッスン4と5

目次1. はじめに2. Lesson 4: JavaScript Basics: Data TypesVariables(変数)Constants(定数)Data Types3. Lesson 5: …

Web Programming

アクセス元のグローバルIPアドレスが表示されるだけのWebページを作る (Content-Type を変えた2種類)(PHP利用)

目次1. はじめに2. 手順(HTMLバージョン)(1) ウェブサーバー上にディレクトリを用意します(2) index.php ファイルを作成します(3) この Webページにアクセスします3. 手順 …

プログラミング

Rubyのように書け、Cのように速いプログラム言語 Crystal の基本的な使い方

Crystal というプログラミング言語の基本的な使い方について紹介します。 実際に「使ってみたい」「試してみたい」といった方に向けて、コードを書き始めるまでの導入方法について書きました。文法の説明な …

Firebase

Firebase を利用する手順

Firebase を利用する手順について説明しています。