(1)从这里创建Facebook应用程序http://developers.facebook.com/apps 并将其配置为您的域。这一步非常简单,把你想要的任何命名空间作为你的应用程序名称,然后检查你的应用程序将被用作应用程序和登录页面(而不是粉丝页面或相关的东西),最后指定URL(将Canvas URL留空),其中你将使用Facebook API(我认为这个URL必须在HTTPS下,但我不知道为什么Facebook仍然允许HTTP,所以不用担心)。
登录配置:
只需在URL中设置:http://yourdomain.com/
应用程序配置:
如:http://www.mydomain.com/myfacebookapp/
因此,当用户进入到:
http://apps.facebook.com/yourappName
意味着他/她真的正在访问第一个链接,并且在那index.php
您需要从下面执行所有操作。只需要知道,在这一点上,您还可以为您的应用程序设置一个徽标,管理您的应用程序的管理员并获得您的应用程序ID和秘密,您需要在PHP文件中进一步使用它。
(如果你在这一步,你可以做一个谷歌搜索混淆,这样的配置也容易找到YouTube)的
(2)我一直用这个文件来涉及我的PHP环境与Facebook的API,你可以从这里下载:https://www.dropbox.com/s/itw4pav1f7a9vez/files.rar
(3)将这些文件名为FB文件夹中。
(4)我会告诉你从用户那里获取数据和图片的方法,但首先他/她必须允许你的应用程序通过登录到你的应用程序来获取他/她的信息。所以,在这个例子中,我将使用一个简单的按钮进行登录。
(不要忘了更换您的应用程序ID和秘密 - 'XXX' 和 'YYY')
<?php
require 'fb/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'yyy',
));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
?>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>Facebook PHP SDK</title>
</head>
<body>
<h1>Facebook PHP SDK</h1>
<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<div>
Login using OAuth 2.0 handled by the PHP SDK:
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
</div>
<?php endif ?>
<h3>PHP Session</h3>
<pre><?php print_r($_SESSION); ?></pre>
<?php if ($user): ?>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
<h3>Your User Object (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>
</html>
(5)上面的例子使用了Facebook的PHP SDK没有的JavaScript。因此,如果用户想要登录并授权您的应用获取他/她的信息,整个页面将被重定向到您的应用的Facebook权限页面,然后返回到您的Facebook应用的主页面(在配置时指定你创建了你的应用程序)。
(6)下一个代码将与上面相同,但使用JavaScript和自定义的Facebook登录按钮,允许您在您的问题中编写特殊权限。另一个区别是,弹出窗口将显示而不是重定向整个页面。
(不要忘了更换您的应用程序ID和秘密 - 'XXX' 和 'YYY')
<?php
require 'fb/facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'yyy',
));
// See if there is a user from a cookie
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
$logoutUrl = $facebook->getLogoutUrl();
} catch (FacebookApiException $e) {
$user = null;
}
} else {
$loginUrl = $facebook->getLoginUrl();
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Facebook PHP SDK</title>
</head>
<body>
<fb:login-button size="small" onlogin="after_login_button()" scope="email, user_about_me, user_birthday, user_status, publish_stream, user_photos, read_stream, friends_likes">Login with facebook</fb:login-button>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId: '<?php echo $facebook->getAppID() ?>',
cookie: true,
xfbml: true,
oauth: true
});
/* This is used with facebook button */
FB.Event.subscribe('auth.login', function(response) {
if (response.authResponse) {
// Specify the login page (the page in which your fb login button is situated)
window.location = 'main.php';
}
});
FB.Event.subscribe('auth.logout', function(response) {
window.location = 'logout.php';
});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
function after_login_button(){
FB.getLoginStatus(function(response) {
if (response.status=="connected") {
// If user is connected, redirect to this page
window.location = 'main.php';
}
}, true);
}
</script>
</body>
</html>
(7)正如你所看到的,在范围属性Facebook登录按钮确定您的应用程序需要哪些特殊权限和信息,例如他/她的电子邮件等用户(通常是私人的)。
(8)我想补充的东西,你可以从别人你使用下面的代码知道他/她的ID只获得公共信息:
(假设你的Facebook朋友的页面是:http://www.facebook.com/foobar或类似:http://www.facebook.com/users/profile/1002020300010)
//For example: your facebook friend's page is http://www.facebook.com/foobar
$myFriend = $facebook->api('/foobar');
//For example: your facebook friend's page is http://www.facebook.com/users/1002020300010
$myFriend = $facebook->api('/1002020300010');
//Print information like your friend's name:
echo $myFriend['name'];
//Print all information captured:
print_r($myFriend);
而且让你的朋友的图片:
<img src="https://graph.facebook.com/foobar/picture">
或者:
<img src="https://graph.facebook.com/1002020300010/picture">
最后,假设你有变量捕获的所有用户的信息,您可以将所有的数据到数据库表没有问题。
希望这有助于:-)
你有没有在Facebook的PHP SDK中的例子看? – zerkms 2012-07-25 03:23:42
我不认为我知道在哪里看。我只看到了图表api,但无法说明该做什么。 – johnny 2012-07-25 03:25:31
http://developers.facebook.com/docs/reference/php/ – zerkms 2012-07-25 03:26:12