Tweepyでt.coを展開する
APIドキュメントは古かった
Welcome to tweepy’s documentation! — tweepy v1.4 documentation
1.4のドキュメントがSphinxであるのだけど、現在は1.8だし、Twitter APIの仕様もけっこう変わってたりする。一番大きいのはUserStraemなのかもしれないけど、今回はそれはおいとく。
ソースを読んだ
とりあえず home_timeline の部分の params を読んでもないし、全体的にgrepかけても項目がなくて、entitiesがとれない→t.coが展開できないかと思ってた。githubもちょっとみたけれどあんまりよくわかんなかった。
誰かのブログにあった
どこかでブログにありました。参考に載せたかったけど結局見つからず。
結局単純に引数に与えてやればよかった。
#DjangoのViews.py def get_home_timeline(request): #OAuthをとりつける外部関数 auth = setOAuth(request) api = tweepy.API(auth_handler=auth) #こうやって引数に与えてやればいい home_timeline = api.home_timeline(count = 100,since_id = request.session.get('since_id'), include_entities=True)
簡単ですね。展開するサンプル(微妙なのであとでメソッドを分ける予定)
for i in home_timeline: text = i.text for url in i.entities['urls']: #なかったらスルーして次へ if url is None: continue else: for ii in i.entities['urls']: #正規表現で見つける if re.search(ii['url'], text): #いろいろハマったけど、素直にentitiesのディクショナリから参照してそれぞれ置換してあげればよかった text = re.sub(ii['url'], ii['expanded_url'], text)
結論
ドキュメントや、せめてソースに書いておいてください……