LoginSignup
4
2

More than 3 years have passed since last update.

RSSから情報を取得してラズベリーパイに自動ツイートさせた話

Last updated at Posted at 2019-08-10

TwitterAPI取得して誰得情報を呟くBOTを作った話

前提条件

Raspberry Pi 3 Model B+を使用。2でも4でもZeroでもできると思います。
TwitterAPI Keyの発行は以下記事かなんかを参考にして済ませておいてください。
https://qiita.com/kazupen2018/items/ff9828cc853ab9c3357e

必要ライブラリのインストール

お約束コマンドを実行

sudo apt-get update
sudo apt-get upgrade

Twythonのインストール

sudo pip install twython

サンプルファイルの作成

nano tweet.py
tweet.py
# coding: utf-8
from twython import Twython, TwythonError

# API Keyなどの必要情報を入力。
APP_KEY = "Consumer Key (API Key)"
APP_SECRET = "Consumer Secret (API Secret)"
OAUTH_TOKEN = "Access Token"
OAUTH_TOKEN_SECRET = "Access Token Secret"

# 変更するのは上の4つのみで大丈夫です
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

try:
    twitter.update_status(status='Qiita uses @ kazupen2018 posted article script.')
except TwythonError as e:
    print e

API Key・APISecret・Access Token・Access Token Secret
この記事を参考にして取得し、上記プログラムに入力してください。

テストツイートの実行

python tweet.py

Twitterを確認してみてください。無事にツイートされていましたか?
されていない場合はライブラリやAPIを再確認してください。

RSSを取得しツイート

feedparserをインストール

sudo pip install feedparser

RSSを取得

例として、Yahoo!天気から今日の東京の予報を取得します。
https://weather.yahoo.co.jp/weather/rss/
image.png
取得したいところをクリックします。例として東京都都庁所在地。
image.png
すると、このように表示されます(ブラウザによって表示が異なります)
そのページのURL欄のURLをコピーします。
ここでは
https://rss-weather.yahoo.co.jp/rss/days/4410.xml
でした。

RSSを取得してツイート

nano rss.py
rss.py
# coding: utf-8
from twython import Twython, TwythonError

import feedparser

APP_KEY = "Consumer Key (API Key)"
APP_SECRET = "Consumer Secret (API Secret)"
OAUTH_TOKEN = "Access Token"
OAUTH_TOKEN_SECRET = "Access Token Secret"

# 先ほど取得したRSSのURLを下に貼り付けます
RSS_URL = "RSS_URL(ここをRSSのURLと置き換えてください)"
news_dic = feedparser.parse(RSS_URL)
latest_entry = news_dic['entries'][0]
message = latest_entry.title + latest_entry.link

twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

try:
    twitter.update_status(status=message)
except TwythonError as e:
    print e

APIキー、RSS URLは各自で置き換えてください。

python rss.py

image.png

はい。ツイートされていました。

注意事項

Twitterの使用により重複したツイートはできません。たとえば「rss.py」を連続実行するとこのようなエラーがでます。

Twitter API returned a 403 (Forbidden), Status is a duplicate.

同じ内容を繰り返し投稿することができないことに留意して、cronなどに登録して遊んでみてください。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2