我正在尝试使用新的facebook身份验证系统,但我无法让登录工作 .
我收到以下错误消息:
API错误代码:100
API错误说明:参数无效
错误消息:next不归应用程序所有 .
发送到Facebook的网址是:
请注意,网址中的“下一个”变量是:
下一个HTTP =%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26CB%3Df357eceb0361a8a%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573%26relation% 3Dopener%26transport%3Dpostmessage%26frame%3Df23b800f8a78%26result%3DxxRESULTTOKENxx
什么想法可能会出错?我所做的就是从facebook的网站上复制并粘贴facebook登录演示代码:
<?php
define('FACEBOOK_APP_ID', 'your application id');
define('FACEBOOK_SECRET', 'your application secret');
function get_facebook_cookie($app_id, $application_secret) {
$args = array();
parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
ksort($args);
$payload = '';
foreach ($args as $key => $value) {
if ($key != 'sig') {
$payload .= $key . '=' . $value;
}
}
if (md5($payload . $application_secret) != $args['sig']) {
return null;
}
return $args;
}
$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:fb="http://www.facebook.com/2008/fbml">
<body>
<?php if ($cookie) { ?>
Your user ID is <?= $cookie['uid'] ?>
<?php } else { ?>
<fb:login-button></fb:login-button>
<?php } ?>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true,
cookie: true, xfbml: true});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
</script>
</body>
</html>
谢谢您的帮助!
5 回答
我有同样的问题,无法弄明白 . 吉说,这是基础领域 . 我会投票,但我刚加入 . FB设置页面中的要求非常糟糕......我使用了localhost .
我还使用了一个查询字符串?nothing = 1来测试新要求的b / c,其中说:connect url必须指向一个目录(即以“/”结尾)或动态页面(即有一个“ ?“某个地方 .
因此,你不能只把default.aspx . 你必须以斜线结束或拥有?这是连接的奇怪要求 .
谢谢你!
我能够通过这些设置解决这个问题:
基础域:domain.com(这也应解决adelein的多个子域问题)
连接URL:需要是有效的http://或https:// URL,末尾有斜杠或者'?' URL中的某个位置,表示查询字符串 . 基本上,我不希望你将人们发送到静态页面,这些页面没有正确处理他们设置的授权 .
如果连接网址正确,但仍然无效,请转到您的应用设置,指定正确的基本域 . 对于测试,您可以使用localhost . 如果仍然没有运气,请转到迁移设置,禁用“新数据权限”
我得到了同样的错误,但我使用的是Rails,问题是Connect URL没有更新 . 我的本地应用程序在端口3000上运行,Connect URL指向端口80 .
看看改变是否适合你 .
转到http://www.facebook.com/developers
编辑您正在处理的应用程序
单击左侧的
Connect
选项卡验证是否正确设置了
Connect URL
我对Facebook API了解不多,但我知道你必须用您的应用程序ID和应用程序密码替换文本
your application id
和your application secret
. :)