google app engineでtwitterアプリを作ろう

22
Google App Engine で Twitter ででででででで 2010 で 8 で S-cubism ででででで でででで

Upload: kenji4569

Post on 15-Jan-2015

3.298 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Google App EngineでTwitterアプリを作ろう

Google App Engine でTwitter アプリを作ろう

2010 年 8 月S-cubism 技術勉強会

細田謙二

Page 2: Google App EngineでTwitterアプリを作ろう

Twitter について

Page 3: Google App EngineでTwitterアプリを作ろう

Google App Engine について

Page 4: Google App EngineでTwitterアプリを作ろう

Google App Engine でできること

なんといってもタダ!

ウェブサービスだけではない

URL フェッチやクーロンタスクも可能

Page 5: Google App EngineでTwitterアプリを作ろう

こんなことが可能

ダウンロード個人レベルでのデータ集約&解析

Page 6: Google App EngineでTwitterアプリを作ろう

本日のレシピ本日のレシピGoogle App Engine で

Tweet Aggregator を作る

Web2pyWeb2py

OAuthOAuth

Twitter APITwitter API

Google App EngineGoogle App Engine

Page 7: Google App EngineでTwitterアプリを作ろう

tweepy ライブラリを利用する

• Twitter API の Python ラッパー

• OAuth 認証が利用可能

ん。。 OAuth って?

Page 8: Google App EngineでTwitterアプリを作ろう

Twitter の利用制限

• 匿名リクエストは、 IP 毎に、 1 時間に 150 回まで

• Google App Engine では IP を共有利用• → すぐ制約にひっかかる

• OAuth 認証を利用すれば、 IP 制約がない– 1 時間に 350 回まで– Twitter にログインした状態と同じことができる

Page 9: Google App EngineでTwitterアプリを作ろう

OAuth の設定1

• 適当なアプリ名を入力すれば OK–認証後、指定 URL にリダイレクトするか否か

の設定なども行う

• Cunsumer Key と Consumer secret を取得

Twitter にてアプリケーション登録

Page 10: Google App EngineでTwitterアプリを作ろう

OAuth の設定2

import tweepyauth = tweepy.OAuthHandler(

consumer_key, consumer_secret)

(以降 tweepy を利用)取得した "consumer token" から

auth オブジェクトを作成

Page 11: Google App EngineでTwitterアプリを作ろう

OAuth の設定3

redirect_url = auth.get_authorization_url()request_key = auth.request_token.keyrequest_secret = auth.request_token.secret

これらの出力をメモ

"redirect url" と "request token" を取得

Page 12: Google App EngineでTwitterアプリを作ろう

OAuth の設定4

12345677 桁の数字が表示されるので、

これもメモ

取得した "redirect url" を( twitter にログインした状態で)開く

Page 13: Google App EngineでTwitterアプリを作ろう

OAuth の設定5

auth.set_request_token(request_key, request_secret)

auth.get_access_token(verifier_digits)

access_key = auth.access_token.key access_secret = auth.access_token.secret

取得した 7 桁の数字

これらの出力をメモ

"access token" の取得

Page 14: Google App EngineでTwitterアプリを作ろう

OAuth の設定6

auth.set_access_token(access_key, access_secret)

# これで API が利用可能に!api = tweepy.API(auth)

api オブジェクトの作成

Page 15: Google App EngineでTwitterアプリを作ろう

こんな感じでツイートを収集

# since_id 以降のツイートを最大 200 件取得tweets = api.home_timeline(

since_id, count=200)

for tweet in tweets:tweet.id

tweet.text ...

Page 16: Google App EngineでTwitterアプリを作ろう

Aggregator を作る

• ツイートの定期収集– URL フェッチ– DB へ保存 (Web2py だと簡単 )–クーロンで回す ( 設定ファイルで可能 )

• 未読 / 既読を設定してみる

Page 17: Google App EngineでTwitterアプリを作ろう

Web2py を利用する• Python のウェブフレームワーク

• Google App Engine 上でも動作する

• 習得が容易– 大学での教育用として開発

Page 18: Google App EngineでTwitterアプリを作ろう

ツイートモデルを定義

db.define_table('tweet', Field('uuid', 'integer'), Field('tweeted_at', 'datetime'), Field('content', 'string'), Field('user_name', 'string'), Field('user_image', 'string'), Field('read_flg', 'boolean', default=False),))

Web2py の db オブジェクト

Web2py のmodel 内で定義

未読 / 既読の設定

Page 19: Google App EngineでTwitterアプリを作ろう

未読のみ表示してみる# 未読ツイートの取得tweets = db(db.tweet.read_flg==False

).select(limitby=(start, end),orderby=~db.tweet.tweeted_at)

# 既読に設定for tweet in tweets: tweet.update_record(read_flg=True) # ビューで表示return dict(tweets=tweets)

Web2py のcontroller 内の関数

Page 20: Google App EngineでTwitterアプリを作ろう

Google App Engine にデプロイ

• Google App Engine のアプリケーションの登録

• SDK のインストール• 設定ファイルの記述–アプリケーション名を登録– DB インデックスや、クーロンタスクなどを設定

• (web2py の ) ソースをコミット

Page 21: Google App EngineでTwitterアプリを作ろう

デモ

Page 22: Google App EngineでTwitterアプリを作ろう

こんなことができる(かも)

• ユーザー毎に未読数・既読数の表示

• メンションやリツイートなどに関する詳細分析

• 頻出単語の算出

• 個人の嗜好を反映したツイートの分類