Python Hack A Thon 3 Facebook Application On A

18
Python Hack-a-thon #3 Facebook application on appengine aodag http://blog.aodag.jp/ twitter: @aodag http://www.facebook.com/aodag

Transcript of Python Hack A Thon 3 Facebook Application On A

Page 1: Python Hack A Thon 3 Facebook Application On A

Python Hack-a-thon #3

Facebook application on appengine

aodaghttp://blog.aodag.jp/

twitter: @aodaghttp://www.facebook.com/aodag

Page 2: Python Hack A Thon 3 Facebook Application On A

Facebookアプリを作ってみよう

FacebookFacebookアプリ

Page 3: Python Hack A Thon 3 Facebook Application On A

Facebook

Page 4: Python Hack A Thon 3 Facebook Application On A

Facebook

いわゆるSNS世界最大Flickrよりも写真が多いとかtwitterのようなアクティビティストリームリンクや写真などを共有グループなどなど

Page 5: Python Hack A Thon 3 Facebook Application On A

Facebookアプリ

Facebook上で動くアプリケーションユーザーの情報を取得できるユーザーの友達の情報を取得できるアプリ上での行動をアクティビティに投稿できるなどなど 

Page 6: Python Hack A Thon 3 Facebook Application On A

Facebookアプリ

FBMLアプリが作成したFBMLをFacebookがHTMLに変換する。 サーバーサイドで各種クライアントライブラリを使ってFacebookの機能にアクセスする。IFRAMEアプリが作成したHTMLをIFRAME内で表示する。XFBMLで、FBMLの機能を一部利用できる。Javascript SDKでFacebookの機能を使える。サーバーサイドからのアクセスも可能。

Page 7: Python Hack A Thon 3 Facebook Application On A

FBML

Page 8: Python Hack A Thon 3 Facebook Application On A

IFrame

Page 9: Python Hack A Thon 3 Facebook Application On A

Google App EngineでFacebookアプリを作るには準備Facebook開発者アプリで、appkeyとsecretを取得する。http://www.facebook.com/developers xd_receiver.htm をダウンロードする。http://www.somethingtoputhere.com/xd_receiver.htm

Page 10: Python Hack A Thon 3 Facebook Application On A

app.yaml

...handlers:

- url: /  static_files: static/index.html  upload: static/index.html

- url: /xd_receiver.htm  static_files: static/xd_receiver.htm  upload: static/xd_receiver.htm

- url: .*  script: main.py

Page 11: Python Hack A Thon 3 Facebook Application On A

index.html<!-- javascript libraryをインポート -->     <script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script> <!-- jqueryとかもインポート -->略<!-- 初期化 -->     <script >      apikey = "d831ba0c7dd7b830572fb5f928f94bc4";      FB.init(apikey, "xd_receiver.htm");      FB.ensureInit(function() {$(function() {// ここで初期化});});    </script>

Page 12: Python Hack A Thon 3 Facebook Application On A

main.py wsgiミドルウェア

  application = webapp.WSGIApplication([('/fbprofile', ProfileHandler)],                                       debug=True)  import facebook.wsgi as facebook  import settings  application = facebook.FacebookWSGIMiddleware(application,                                                 settings.fbconfig)  util.run_wsgi_app(application)

Page 13: Python Hack A Thon 3 Facebook Application On A

さらにmain.py リクエストハンドラ

class FacebookHandler(webapp.RequestHandler):    def init(self, request, response):         """          Facebook用スーパークラス         """          super(FacebookHandler, self).init(request, response)          self.facebook = request.environ['pyfacebook.facebook']         if self.facebook.check_session(self.request):             self.request.remote_user = self.facebook.uid

Page 14: Python Hack A Thon 3 Facebook Application On A

FBML

ログインユーザー名を表示する例 <fb:name uid="loggedinuser" />

ユーザー12345のプロフィール写真を表示する例 <fb:profile-pic uid="12345" linked="true" />

Page 15: Python Hack A Thon 3 Facebook Application On A

FBMLをJavascriptライブラリで変換する

FB.XFBML.Host.parseDomTree();

Page 16: Python Hack A Thon 3 Facebook Application On A

FQL

(´-`).。oO(また新しいQuery Languageか)

 

Page 17: Python Hack A Thon 3 Facebook Application On A

FQLの例

SELECT name FROM album WHERE  owner IN (    SELECT uid2     FROM friend     WHERE uid1 = 530888600)

aodag(530888600)の友達のアルバム名を全て取得する

Page 18: Python Hack A Thon 3 Facebook Application On A

FQLをJavascriptクライアントから呼ぶ

FB.Facebook.apiClient.fql_query(query,     function(result) {        //なんか 処理する    });