作为标题状态,我有一些麻烦让用户登录我的Facebook应用程序。Facebook登录无论是PHP或Javascript SDK不工作
当用户注销时,他们点击log in
,页面重新加载,然后显示一个Facebook徽标,其下方有文字Go to Facebook.com
,当我尝试使用Javascript SDK时,我确实在弹出的登录页面框,但是一旦我按Login
,弹出窗口将重定向到XD Proxy
页面,在那里我卡住了,我必须手动关闭弹出窗口才能执行回调。
在这两种情况下,我在Chrome控制台收到此错误,
错误使用JavaScript SDK,当我在控制台中,得到:
不安全的JavaScript尝试与URL https://www.facebook.com/dialog/permissions.request?etcetc访问框架。 .. 从与网址 http://subdomain.mysite.com/folder/?etcetc ... 域,协议和端口必须 匹配。
错误我在控制台中看到,使用PHP SDK时:
不安全JavaScript尝试与URL http://apps.facebook.com/my_app/从 帧帧访问使用URL https://www.facebook.com/login.php?etcetc ... 域,协议和端口必须匹配 。
这里是我的代码,
PHP:
<?php
require 'libs/facebook/src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'APP ID',
'secret' => 'SECRET',
));
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
echo "<a href='".$logoutUrl."'>Login</a>";
} else {
$loginUrl = $facebook->getLoginUrl();
echo "<a href='".$loginUrl."'>Login</a>";
}
?>
我使用PHP SDK 3.0版本。
PHP的失败之后,我尝试使用的JavaScript SDK代替,以处理登录和注销,
的Javascript:
FB.init({
appId : 'APP ID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.getLoginStatus(function(response) {
if (response.session) {
$('#login').hide();
$('#logout').show();
} else {
$('#logout').hide();
$('#login').show();
}
});
$("#logout").live('click', function(){
FB.logout(function(response) {
window.location.reload();
});
});
$("#login").live('click', function(){
FB.login(function(response) {
window.location.reload();
});
});
任何帮助将不胜感激,谢谢!
其Chrome安全措施来阻止跨域请求等http:// stackoverflow。com/questions/3010170/unsafe-javascript-attempt-to-access-frame-with-url-error-being- – 2011-05-24 12:20:50
php代码看起来不错。定义'失败'请 – zerkms 2011-05-24 12:26:09
这就是为什么我讨厌friggin的Facebook平台。 – 2011-05-24 12:28:45