我不断收到以下错误网址不允许:Facebook的PHP登录
给定的URL不会被应用程序配置:一个或多个 给定的URL允许不被应用的设置允许的。必须 与网站网址或Canvas网址相符,或者该网域必须是其中一个应用网域的子域 。
当我尝试用我的PHP代码片段(见下文)登录用户。我的Facebook设置如下:
App Domains: myappname-mynamespace.rhcloud.com www.myappname-mynamespace.rhcloud.com
Site URL: http://myappname-mynamespace.rhcloud.com/
Canvas Page: http://apps.facebook.com/myappname
Canvas URL: http://myappname-mynamespace.rhcloud.com/
Secure Canvas URL: https://myappname-mynamespace.rhcloud.com/
我读过类似的问题here,here,here,here和here,他们都似乎在说同样的话:我的网站URL(网站与Facebook登录)是不正确。
但我Openshift URL是这样
http://myappname-mynamespace.rhcloud.com
所以这就是我把Facebook网站URL字段。我在我的Openshift齿轮的根目录下面的PHP代码(index.php
):
<?php
require 'php-sdk/facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxxx',
'secret' => 'xxxx'
));
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Facebook PHP</title>
</head>
<body>
<h1>Hello World!</h1>
<?php
// get user from facebook object
$user = $facebook->getUser();
if ($user): // check for existing user id
echo '<p>User ID: ', $user, '</p>';
else: // user doesn't exist
$loginUrl = $facebook->getLoginUrl(array(
'display' => 'popup',
'redirect_uri' => 'http://apps.facebook.com/myappname'
));
echo '<p><a href="', $loginUrl, '" target="_top">login</a></p>';
endif;
?>
</body>
</html>
我在做什么错?
当我进入我的Facebook应用程序的URL(http://apps.facebook.com/myappname
),Hello World!
和我的登录链接显示在我的Facebook应用程序的iframe顶部。但是,当我点击登录链接时,出现上述错误。任何援助将不胜感激!
编辑
我进入以下网址在浏览器和Hello World
,并双双显示的登录链接。
http://myappname-mydomainname.rhcloud.com/
https://myappname-mydomainname.rhcloud.com/
一切都看起来不错。但是在黑暗中只是一个镜头:当我将你的配置与我的相比时,我想说你需要在http:// myappname-mynamespace.rhcloud.com'末尾添加一个斜线,就像网站URL一样。 –
+1感谢您的回复@StéphaneBruckert我重复检查了我的网站网址,并且我有一个正斜杠'http:// fbtest-projectkohana.rhcloud.com /'。我会纠正我的问题。在写完这个问题之后,我可能已经写了'/',但它仍然不起作用。这是我写的第二个测试应用程序,它产生了这个错误。这个问题与我使用Openshift有关吗? Openshift为我的免费帐户使用共享的SSL证书。 – Anthony
有时候会发生,无论您在FB设置中进行更改,都会在几个小时后产生影响。所以一旦你做了改变,请继续检查。 – Chandresh