さようならUserStream API。近々完全に使えなくなるようだ。
(8月23日に完全停止?)
当サイトでも過去にバファローズポンタのつぶやきを監視するものを作ったので、近々こいつが動かなくなります。
そんなわけで回避方法を模索します。
目次
代替案その1(Account Activity API)
公式がオススメしている代替案はこちらのAccount Activity APIです。
Account Activity APIを全ての開発者の皆さんに公開
こちらに関してはUserStream APIからの乗り換え方法も公式がアナウンスしています。
Getting started with webhooks — Twitter Developers
さらっと読んで分かる通り、webhookを受信できるWebアプリケーションを用意する必要がありますね。えぇ、面倒です。
急場を凌ぐことだけが必要なので、別の案を検討します。
代替案その2(statuses/filter.json)
比較的楽に移行できそうなのがこちらのfilter.jsonでした。
POST statuses/filter — Twitter Developers
早速ですが以下を参考に擬似UserStreamを作ってみます。
qiita.com
cucmberium.hatenablog.com
import twitter SCREEN_NAME = '******' # OAuth ACCESS_TOKEN_KEY = '******' ACCESS_TOKEN_SECRET = '*****' CONSUMER_KEY = '******' CONSUMER_SECRET = '*******' oauth = twitter.OAuth(ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET, CONSUMER_KEY, CONSUMER_SECRET) # Retrieve friends IDs twitter_api = twitter.Twitter(auth=oauth) friends = twitter_api.friends.ids(screen_name=SCREEN_NAME, count=5000) friends_ids = ','.join(map(str, friends['ids'])) stream = twitter.TwitterStream(auth=oauth, secure=True) for tweet in stream.statuses.filter(follow=friends_ids): if 'user' in tweet and tweet['user']['id'] in friends['ids']: if "bs_ponta" == s1tr(tweet['user']['screen_name']): print(tweet['user']['screen_name'], tweet['text'])
ほぼ参考にしたリンクと同じですが、if "bs_ponta" == s1tr(tweet['user']['screen_name']): の箇所でバファローズポンタのつぶやきのみに限定してます。
お遊びで使っている分際なので、あまり文句は言いませんが、
Twitter、どんどん不便になっていくな…