[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
Google App Engine で Twitter アプリを作ろう 2010 年 8 月 S-cubism 技術勉強会 細田謙二
Twitter について
Google App Engine について
Google App Engine で できること なんといってもタダ! ウェブサービスだけではない URL フェッチやクーロンタスク も可能
こんなことが可能 ダウンロード 個人レベルでの データ集約&解析
本日のレシピ Google App Engine で Tweet Aggregator を作る Web2py OAuth Twitter API Google App Engine
tweepy ライブラリを利用する Twitter API の Python ラッパー OAuth 認証が利用可能 ん。。 OAuth って?
Twitter の利用制限 匿名リクエストは、 IP 毎に 、 1 時間に 150 回まで Google App Engine では IP を共有利用 -> すぐ制約にひっかかる OAuth 認証を利用すれば、 IP 制約がない 1 時間に 350 回まで Twitter にログインした状態と同じことができる
OAuth の設定1 適当なアプリ名を入力すれば OK 認証後、指定 URL にリダイレクトするか否かの設定なども行う Cunsumer Key   と  Consumer secret   を取得 Twitter  にてアプリケーション登録
OAuth の設定2 import tweepy auth = tweepy.OAuthHandler( consumer_key ,  consumer_secret ) (以降  tweepy  を利用) 取得した " consumer token " から auth オブジェクトを作成
OAuth の設定3 redirect_url  = auth.get_authorization_url() request_key  = auth.request_token.key request_secret  = auth.request_token.secret これらの出力をメモ " redirect url "  と " request token " を取得
OAuth の設定4 1234567 7 桁の数字が表示されるので、 これもメモ 取得した " redirect url " を ( 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 " の取得
OAuth の設定6 auth.set_access_token( access_key ,  access_secret ) #  これで API が利用可能に! api  = tweepy.API(auth) api オブジェクトの作成
こんな感じでツイートを収集 # since_id 以降のツイートを最大 200 件取得 tweets =  api .home_timeline( since_id,  count=200) for tweet in tweets: tweet.id tweet.text ...
Aggregator を作る ツイートの定期収集 URL フェッチ DB へ保存  (Web2py だと簡単 ) クーロンで回す  ( 設定ファイルで可能 ) 未読 / 既読を設定してみる
Web2py を利用する Python のウェブフレームワーク Google App Engine 上 でも 動作する 習得が容易 大学での教育用として開発
ツイートモデルを定義 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 内で定義 未読 / 既読の設定
未読のみ表示してみる #  未読ツイートの取得 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 内の関数
Google App Engine にデプロイ Google App Engine のアプリケーションの登録 SDK のインストール 設定ファイルの記述 アプリケーション名を登録 DB インデックスや、クーロンタスクなどを設定 (web2py の ) ソースをコミット
デモ
こんなことができる(かも) ユーザー毎に未読数・既読数の表示 メンションやリツイートなどに関する詳細分析 頻出単語の算出 個人の嗜好を反映したツイートの分類

More Related Content

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