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 ライブラリを利用する <ul><li>Twitter API の Python ラッパー </li></ul><ul><li>OAuth 認証が利用可能 </li></ul>ん。。 OAuth って?
Twitter の利用制限 <ul><li>匿名リクエストは、 IP 毎に 、 1 時間に 150 回まで </li></ul><ul><li>Google App Engine では IP を共有利用 </li></ul><ul><li>->...
OAuth の設定1 <ul><li>適当なアプリ名を入力すれば OK </li></ul><ul><ul><li>認証後、指定 URL にリダイレクトするか否かの設定なども行う </li></ul></ul><ul><li>Cunsumer ...
OAuth の設定2 import tweepy auth = tweepy.OAuthHandler( consumer_key ,  consumer_secret ) (以降  tweepy  を利用) 取得した &quot; consu...
OAuth の設定3 redirect_url  = auth.get_authorization_url() request_key  = auth.request_token.key request_secret  = auth.reque...
OAuth の設定4 1234567 7 桁の数字が表示されるので、 これもメモ 取得した &quot; redirect url &quot; を ( twitter にログインした状態で)開く
OAuth の設定5 auth.set_request_token( request_key ,  request_secret ) auth.get_access_token( verifier_digits ) access_key  = ...
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...
Aggregator を作る <ul><li>ツイートの定期収集 </li></ul><ul><ul><li>URL フェッチ </li></ul></ul><ul><ul><li>DB へ保存  (Web2py だと簡単 ) </li></u...
Web2py を利用する <ul><li>Python のウェブフレームワーク </li></ul><ul><li>Google App Engine 上 でも 動作する </li></ul><ul><ul><li>習得が容易 </li></u...
ツイートモデルを定義 db.define_table('tweet', Field('uuid', 'integer'), Field('tweeted_at', 'datetime'), Field('content', 'string'),...
未読のみ表示してみる #  未読ツイートの取得 tweets = db( db.tweet.read_flg==False   ).select( limitby=(start, end), orderby=~db.tweet.tweeted_...
Google App Engine にデプロイ <ul><li>Google App Engine のアプリケーションの登録 </li></ul><ul><li>SDK のインストール </li></ul><ul><li>設定ファイルの記述 <...
デモ
こんなことができる(かも) <ul><li>ユーザー毎に未読数・既読数の表示 </li></ul><ul><li>メンションやリツイートなどに関する詳細分析 </li></ul><ul><li>頻出単語の算出 </li></ul><ul><li...
Upcoming SlideShare
Loading in …5
×

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

3,466 views
3,425 views

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,466
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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>

×