无法从Facebook获得活动会话
问题描述:
Iam从下面的代码中一次又一次地获取登录URL。无法从Facebook获得活动会话
$this->fb = new Facebook(array(
'appId' => $this->CI->config->item('facebook_app_id'),
'secret' => $this->CI->config->item('facebook_secret'),
'cookie' => true,
));
if (!$this->fb->getSession()){
echo $this->fb->getLoginUrl();
}
当我打印fb对象时,它会显示有效的api键和密钥。
我已经尝试从Firefox清理饼干后。我也尝试过注销,然后在Firefox的非常接下来的标签中从facebook账户重新登录。但结果是一样的。
上面的代码总是生成登录网址。
我还注意到,用户只需登录并返回。没有应用程序批准消息/屏幕显示。在facebook上我的应用程序的设置有任何问题吗?
有人能指导我做什么错,以及如何纠正。
在此先感谢
答
我喜欢使用JS SDK和PHP SDK来获得额外的功能。
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $this->appId ?>',
session : <?php echo json_encode($this->fb->getSession()); ?>, // don't refetch the session when PHP already has it
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/es_ES/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
然后,分配此功能的任何链接或按钮要打开登录和权限对话框(我使用jQuery,并与.fbConnect类的实例的链接):
$(".fbConnect").click(function() {
FB.login(function(response) {
window.location.reload();
}, {perms: 'user_photos,user_photo_video_tags,email,publish_stream'});
});
请注意,权限是在perms对象中指定的。重新加载时,会话应该可用于您的PHP SDK。
另外请确保您正在使用您指定到应用配置中的相同URL,否则它将无法工作。
我可以使用自定义按钮吗? – Simpanoz 2011-03-03 13:55:04