woff 發表於 2012-4-2 17:42:05

Graph API教學與小技巧

有再寫Facebook APP的人應該會很常用到Graph API,舉個簡單的例子
一樣一開始在<head>的開頭先引入Facebook Javascript SDK <SCRIPT type=text/javascript src="http://connect.facebook.net/zh_TW/all.js"></SCRIPT>接著初始化Javascript SDK FB.init({
            appId: _app_id,
            status: true,
            cookie: true,
            xfbml: true
      });接著執行驗證登入並且授權     getLoaginState();
               
                function getLoaginState() {
                        FB.getLoginStatus(function(response) {
                              if (response.authResponse) {                                       
                                        //同意授權並且登入執行這段
                              }
                              else {
                                        login();
                              }
                        });
                }

                function login() {
                        FB.login(function(response) {
                              if (response.authResponse) {
                                        //同意授權並且登入執行這段
                              }
                              else {
                                        alert("須同意應用程式才能進入此頁面");//不同意此應用程式
                              }

                        }, { scope:'email' });//要求存取Email
                }裡面有一段code是scope:'email'是要求特別的權限-存取Email
如果要了解更多並取得更多授權,請看Facebook Permissions 部分
接著就可以執行利用Graph API ,一般來說,我都會搭配著Graph API Explorer 使用,這裡可以及時看到你取回來
的JSON裡面的值有什麼,順帶一提,Facebook回應都是用JSON格式
以下是Graph API 的用法
FB.api('/me', function(response) {
alert('我的Email為: '+response.email+'我的姓名為: '+ response.name);
});



但是,如果你用Graph API Explorer看的話,你會發現這樣其實裡面取回很多資料
http://files.dotblogs.com.tw/rx836/1112/20111222152656732.png
一個人還好,但如果是取朋友清單,而朋友有上百個的話,那網頁的讀取速度就會因此而受影響
所以可以用更簡略的方法
http://files.dotblogs.com.tw/rx836/1112/20111222153233299.png
也就是在/me後面加上&fields=name,email,就可以取得想要取得的資訊了,也就不會每次回應一大串資訊
卻不見的每個都是自己想要的
頁: [1]
查看完整版本: Graph API教學與小技巧