Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

3,610 views

Published on

  • Be the first to comment

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

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

×