我不断收到以下错误
应用程序配置不允许给定 URL。:应用程序的设置不允许一个或多个给定 URL。它必须与网站 URL 或画布 URL 匹配,或者域必须是应用程序域之一的子域。
当我尝试使用我的 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/
我在这里、这里、这里读过类似的问题,这里和这里,它们似乎都在说同样的事情:我的站点 URL(带有 Facebook 登录的网站)不正确。
但是我的 Openshift URL 是这样的
http://myappname-mynamespace.rhcloud.com
这就是我在 Facebook 站点 URL 字段中输入的内容。我的Openshiftindex.php
根目录中有以下 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/