chenjianjx 发表于 2013-1-28 09:36:39

Facebook 的API

初略地研究了一下Facebook的API

基本上,你可以
   1. 用JS从客户端调这个API, 也可以用php, java从服务器端调用API
   2. API可以返回json结构的数据,也可以直接返回html. 两种格式都可以为Mash-up服务
   3. 可以用“iframe包含”方式来mash-up facebook的一个页面,也可以嵌入facebook的自定义标签来调用API


官方给的例子:
   1.客户端直接使用 iframe
   <body>       <iframe src="http://www.facebook.com/plugins/like.php?href=YOUR_URL"><iframe>    </body>   

   2. 在客户端用facebook提供的XML标签库(XFBML) ,使你的页面代码更简洁
    <body>      <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>      <fb:like></fb:like>    </body>

   3. 客户端获得JSON数据
<body>      <div id="fb-root"></div>      <script src="http://connect.facebook.net/en_US/all.js">      </script>      <script>         FB.init({             appId:'119449798131809', cookie:true,             status:true, xfbml:true          });         FB.api('/me', function(user) {         if(user != null) {            var image = document.getElementById('image');            image.src = 'http://graph.facebook.com/' + user.id + '/picture';            var name = document.getElementById('name');            name.innerHTML = user.name;         }         });       </script>         <div align="center">         <img id="image"/>         <div id="name"></div>         </div>    </body>

4. 服务端获得JSON数据 (php)
<?phpdefine('YOUR_APP_ID', 'your app id ');define('YOUR_APP_SECRET', 'your app secret');function get_facebook_cookie($app_id, $app_secret) {$args = array();parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);ksort($args);$payload = '';foreach ($args as $key => $value) {    if ($key != 'sig') {      $payload .= $key . '=' . $value;    }}if (md5($payload . $app_secret) != $args['sig']) {    return null;}return $args;}$cookie = get_facebook_cookie(YOUR_APP_ID, YOUR_APP_SECRET);$user = json_decode(file_get_contents(    'https://graph.facebook.com/me?access_token=' .    $cookie['access_token']));?><html><body>    <?php if ($cookie) { ?>      Welcome <?= $user->name ?>    <?php } else { ?>      <fb:login-button></fb:login-button>    <?php } ?>    <div id="fb-root"></div>    <script src="http://connect.facebook.net/en_US/all.js"></script>    <script>      FB.init({appId: '<?= YOUR_APP_ID ?>', status: true,               cookie: true, xfbml: true});      FB.Event.subscribe('auth.login', function(response) {      window.location.reload();      });    </script></body></html>
页: [1]
查看完整版本: Facebook 的API