我想使用Facebook ID欢迎所有进入我页面的Facebook用户。示例:
您好 * name * ,欢迎来到我的页面!
我尝试将它与PHP SDK一起使用并将SDK文件复制到我的主机。那是我试图使用的代码:
<?php
require_once 'facebook.php';
$facebook = new Facebook(array(
'appId' =>'1234',
'secret' => '12345',
'cookie' => true,
'domain' => 'http://www.facebook.com/Guides4All.Co.IL/'
));
$session = $facebook->getSession();
if (!$session) {
//user not logged into facebook
$uName = "Guess";
} else {
try {
$user_id = $facebook->getUser();
$tt = "/" . $user_id;
$me = $facebook->api($tt);
$uName = $me["name"];
}
catch (FacebookApiException $e) {
}
}
echo "Welcome $uName";
?>
Nut我收到了一个错误:
Fatal error: Call to undefined method Facebook::getSession() in /*****.php on line 11
我该怎么做才能解决这个问题?什么是getSession()
以及现在该做什么?
答案 0 :(得分:2)
嗯,基本上,这是因为Facebook::getSession()
方法不存在
换句话说,$session = $facebook->getSession();
只是行不通。
当您实例化Facebook对象时,会话已经启动。
代码应该更像SDK located at GitHub
中的示例答案 1 :(得分:2)
新的PHP-SDK中没有方法getSession
。您应该使用getUser
方法来获取用户ID。
要实现这一目标,您应该先authenticate user。您可以使用getLoginUrl
方法创建用户需要访问的URL以连接您的应用程序。
您需要阅读Authentication,PHP-SDK的文档并挖掘examples。
答案 2 :(得分:1)
这将为您提供访问用户的全名。即使它已被弃用,它仍然有效。
<div id="fb-root"></div>
<script src="https://connect.facebook.net/en_US/all.js#appId=YOUR_APP_ID&xfbml=1"></script>
<script>
window.fbAsyncInit = function() {
FB.init({
appId: 'YOUR_APP_ID',
cookie: true,
xfbml: true,
oauth: true
});
(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);
}());
</script>
<fb:serverFbml><script type="text/fbml"><fb:userlink uid="loggedinuser"/></script></fb:serverFbml>
答案 3 :(得分:0)
$facebook = new Facebook(…);
$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;
}
}
// $ user_profile获取有关该用户的所有信息。然后在该数组中打印您想要的内容。