【发布时间】:2012-11-15 21:40:44
【问题描述】:
我有以下代码,部分工作
<?php
require_once 'facebook.php';
$app_id = 'MY_APP_ID';
$app_secret = 'MY_APP_SECRET';
$app_url = 'http://mysite.com/index.php/';
$scope = 'user_about_me';
// Init the Facebook SDK
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
// Get the current user
$user = $facebook->getUser();
// If the user has not installed the app, redirect them to the Auth Dialog
if (!$user) {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => $scope,
'redirect_uri' => $app_url,
));
print('<script> top.location.href=\'' . $loginUrl . '\'</script>');
}
$user_profile = $facebook->api('/me');
echo "id: " . $user_profile['id'];
?>
我在此页面上打印出正确的 ID,但在其他几个页面上我进入了 if(!$user)。
但是oauth url有错误:
API 错误代码:191 API 错误描述:指定的 URL 不属于应用程序 错误消息:无效的 redirect_uri:应用程序配置不允许给定 URL。
我在 stackoverflow 上发现了类似的问题,但似乎无法修复它:/
在我的设置下,我有相同的 url 和 $app_url
带有 facebook 的网站 -> 网站网址 -> https://www.facebook.com/pages/myappname/373671679372127/
编辑:我编辑了我的 app_url,所以它现在与我在应用设置下的画布 url 相同:http://mysite.com/index.php/
现在我没有收到错误消息。我只是得到一个空白窗口:(
编辑:在测试时偶尔清除 cookie 很重要。其他地方的一些非常随机的错误
【问题讨论】:
-
在 Facebook Developers 中编辑应用程序时,您确定您的域填写了“App Domains”吗?如果您想在您的 web 应用程序中提供对应用程序的完全访问权限,请在此处填写您的主域,而不受是否有子域的限制。
-
我的应用程序域是:mywebsite.com(没有 http 和任何 /)。 Facebook 一直在抱怨我在里面写了什么
标签: facebook oauth-2.0 facebook-login