ラズベリーパイ奮闘記(Twitter連携編 第二章)
前回のあらすじ
ラズパイのセットアップと無線LANの設定を終え、意気揚々としている中、Twitter APIを外部からの命令インターフェイスにしようと試みる。苦戦した挙句Hello Worldをツイートするだけで力尽きてしまった。おお ちからつきるとは なさけない
さーて今回の奮闘は?
てなわけで今回はTwitter UserStreamを使えるようにしようと思う。
UserStreamが使えるようになれば外出先からTwitterを介して命令ができるようになるというわけだフハハハ(白目)
まずはUserStreamを使ってみる
前回で奮闘したのでtweepyは使える!
$ vim test2.py
#!/usr/bin/env python #-*- coding:utf-8 -*- import sys import tweepy from tweepy.streaming import StreamListener, Stream from tweepy.auth import OAuthHandler from tweepy.api import API from datetime import timedelta def get_oauth(): consumer_key = 'ここにConsumer Keyを記載' consumer_secret = 'ここにConsumer Secretを記載' access_key = 'ここにAccess Tokenを記載' accress_secret = 'ここにAccess Token Secretを記載' return auth class StreamListener(tweepy.streaming.StreamListener): def __init__(self): super(StreamListener, self).__init__() def on_status(self, status): status.created_at += timedelta(hour=9) print(u"{text}".format(text=status.text)) print(u"{name}({screen}) {created} via {src}\n".format( name=status.author.name, screen=status.author.screen_name, created=status.created_at, src=status.source)) if __name__ == '__main__': auth = get_oauth() stream = tweepy.Stream(auth, StreamListener(), secure=True) stream.userstream()
$ python test2.py
待ち状態になったら成功?
とりまiPhoneからメンション送ってみた。
今の状態だとタイムラインに何か上がれば出てくるはずなんだけどね。
出た!!( ;∀;)
やばい簡単すぎる。エラー対処とか何もしてないけど!!
こちらを参考にさせていただきました。
この後の予定
現状ではUserStreamに流れてきたstatusに対してすべて表示しているので、特定のアカウントからの特定の命令に対してのみリアクションするように処理を追加します。まだPythonのことよく知らないから条件分岐と関数呼び出しとスコープあたり知らないとできないと思う。
また今回もRaspberry Pi全然関係ないやんけwwwww