4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?