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
# 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/
取得したいところをクリックします。例として東京都都庁所在地。
すると、このように表示されます(ブラウザによって表示が異なります)
そのページのURL欄のURLをコピーします。
ここでは
https://rss-weather.yahoo.co.jp/rss/days/4410.xml
でした。
###RSSを取得してツイート
nano 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
はい。ツイートされていました。
##注意事項
Twitterの使用により重複したツイートはできません。たとえば「rss.py」を連続実行するとこのようなエラーがでます。
Twitter API returned a 403 (Forbidden), Status is a duplicate.
同じ内容を繰り返し投稿することができないことに留意して、cronなどに登録して遊んでみてください。