我正在尝试使用javascript创建facebook连接,这会产生以下错误:
应用程序配置不允许使用URL:应用程序的设置不允许使用一个或多个给定的URL。它必须与网站URL或Canvas URL匹配,或者域必须是App域之一的子域。
是否由于我使用Localhost服务器进行测试?我是否需要购买域名来测试这个或什么? 或者我需要在以下代码中进行更改:
我的代码:
<?php
//
// uses the PHP SDK. Download from https://github.com/facebook/php-sdk
include("facebook-php-sdk/src/facebook.php");
//
// from the facebook app page
define('YOUR_APP_ID', '321849981247524');
define('YOUR_APP_SECRET', '49fd00ce6237aff0af08fd8ca25dbc92');
//
// new facebook object to interact with facebook
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
//
// if user is logged in on facebook and already gave permissions
// to your app, get his data:
$userId = $facebook->getUser();
?>
<html>
<head>
<style>body { text-align:center; font-size: 40px }</style>
</head>
<body>
<?php
if ($userId) {
//
// already logged? show some data
$userInfo = $facebook->api('/' + $userId);
echo "<p>YOU ARE: <strong>". $userInfo['name'] ."</strong><br/>";
echo "Your birth date is: ".$userInfo['birthday']."</p>";
} else {
//
// use javaascript api to open dialogue and perform
// the facebook connect process by inserting the fb:login-button
?>
<div id="fb-root"></div>
<fb:login-button scope='email,user_birthday'></fb:login-button>
<?php
}
?>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : <?=YOUR_APP_ID?>, //When I gives app ID "321849981247524" or my own created it gives error that it's not valid
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
FB.Event.subscribe('auth.login', function(response) {
// ------------------------------------------------------
// This is the callback if everything is ok
window.location.reload();
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
</body>
</html>
当我在浏览器中运行时,它显示了facebook按钮,然后点击重定向到新窗口进行FB登录,但随后显示上述错误!
答案 0 :(得分:16)
我知道这是一个老问题,但对于那些最终在这里寻找答案的人来说,这是一个经过测试和运作的解决方案:
在开始App Domains
字段应留空。
点击下方的“添加平台”按钮,然后选择“网站”。
在新的网站表单中,您可以在Site URL
字段中添加localhost:
例如。 http://localhost:3000/
对于带有图片的视觉指南,您可以查看this answer。
除此之外,您实际上可以使用user123的答案,并将localhost映射到本地域(例如'myproject.dev'),并且必须在同一Site URL
字段中输入本地开发域:
例如。 http://myproject.dev/
答案 1 :(得分:2)
如果要将Facebook应用程序与本地环境连接,则应使用某些别名域。
尝试以下方法:
Go to your etc/hosts file and add the following line:
127.0.0.1 dev01.dev # you can change domain to whatever you want
Go to Facebook App Dashboard and register your application using dev01.dev as domain!
Add your Site URL (eg. http://dev01.dev/project/ )
It should works.
编辑:您还可以查看此问题:在localhost中开发Facebook
答案 2 :(得分:1)
在Facebook中,如果facebook javascript SDK无法在Chrome中使用,请参阅以下步骤。
禁用Chrome中的所有插件。特别是广告拦截器会给你一个:
307内部状态代码
它应该有用。