<?php
require 'facebook.php';
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => '130407366991766',
'secret' => '****',
'cookie' => true,
));
// We may or may not have this data based on a $_GET or $_COOKIE based session.
//
// If we get a session here, it means we found a correctly signed session using
// the Application Secret only Facebook and the Application know. We dont know
// if it is still valid until we make an API call using the session. A session
// can become invalid if it has already expired (should not be getting the
// session back in this case) or if the user logged out of Facebook.
$session = $facebook->getSession();
$me = null;
// Session based API call.
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}
// login or logout url will be needed depending on current user state.
if ($me) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
// This call will always work since we are fetching public data.
$naitik = $facebook->api('/naitik');
?>
<h1><a href="example.php">php-sdk</a></h1>
<?php if ($me): ?>
<a href="<?php echo $logoutUrl; ?>">
<img src="http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif">
</a>
<?php else: ?>
<a href="<?=$loginUrl?>">
<img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif">
</a>
<?php endif ?>
<h3>Session</h3>
<?php if ($me): ?>
<pre><?php print_r($session); ?></pre>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $uid; ?>/picture">
<?php echo $me['name']; ?>
<h3>Your User Object</h3>
<pre><?php print_r($me); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>
<h3>Naitik</h3>
<img src="https://graph.facebook.com/naitik/picture">
<?php echo $naitik['name']; ?>
出于某种原因......虽然登录似乎完美无缺,但我的脚本不断声明“你没有连接”。
我只能假设我的应用程序设置存在问题。有人有什么想法吗?
答案 0 :(得分:4)
我有完全相同的问题。我的整个应用程序都被破坏了,因为getSession()不再运行了。
我下载了最新版本的PHP SDK,并使用该示例初始化用户会话。
基本上,只要您创建Facebook对象,就会初始化会话。所以从示例代码中,当你打电话时。
$facebook = new Facebook(array(
'appId' => '191149314281714',
'secret' => '73b67bf1c825fa47efae70a46c18906b',
));
您已有会话。要获取用户ID,只需致电:
$uid = $facebook->getUser();
如果该调用的结果为0
,则该用户未登录。
答案 1 :(得分:3)
Facebook改为OAuth2和GetSession无法正常工作从开发人员PHP Sdk下载新的base_facebook.php和facebook.php并将登录程序替换为:
if( $userfb = $facebook->getUser() ){
try{
$UserProfile = $facebook->api('/me');
}catch (FacebookApiException $e) {
$userfb = null;
$UserProfile = null;
}
在我的网站上工作新版本无法显示带有烫发参数的fb:login-button :(我无法修复
答案 2 :(得分:2)
Facebook改变了调用API的方式,旧的REST API调用正在被删除。这意味着getSession()方法不再起作用了。
答案 3 :(得分:-1)
您需要将Api Key赋予构造函数。不是App Id。