初略地研究了一下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)
<?php define('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>