7

我不断收到以下错误

应用程序配置不允许给定 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/
4

1 回答 1

2

不久前,我出于某种原因修改了 Facebook 的 API,但一直遇到同样的错误。事实证明,一些带有 http 的网址应该是 https,而不是 facebook 强调要留下正确的说明。我建议更改Site URL: http://myappname-mynamespace.rhcloud.comSite URL: https://myappname-mynamespace.rhcloud.com. 如果这没有帮助,我建议查看其他 URL 并更改它们。祝你好运

于 2013-10-02T12:01:08.053 回答