【问题标题】:Allowing an internal site URL as well as web-visible site URL in app config允许在应用配置中使用内部站点 URL 以及 Web 可见站点 URL
【发布时间】:2012-05-28 18:53:51
【问题描述】:

我已经阅读过,但我找不到任何类似的问题,所以这里......

我有一个 facebook 应用程序,它已配置好并且运行良好,让我们将我的网站 URL 设为:

http://adminpanel.its.a.very.long.url.mywebsite.com

这在应用程序配置中被配置为“站点 URL”,它工作正常。

但是,该网站也用于我们的内部网络,其 DNS 允许我们使用

http://adminpanel/

问题在于 facebook 应用程序不允许使用'redirect_uri'

http://adminpanel/

并失败并显示以下内容:

API 错误代码:191 API 错误描述:指定的 URL 不属于应用程序 错误消息:无效的 redirect_uri:应用程序配置不允许给定 URL。

是否可以同时允许

http://adminpanel.its.a.very.long.url.mywebsite.com

http://adminpanel/

提前致谢,

奥利

更新:我无法使用两个应用程序,因为我依靠“添加页面选项卡对话框”将我的应用程序添加到各个页面。

我需要的是 facebook 允许的这两个重定向(由“下一个”参数指定)。

https://www.facebook.com/dialog/pagetab?app_id=12345678&display=popup&next=http://adminpanel/Success

https://www.facebook.com/dialog/pagetab?app_id=12345678&display=popup&next=http://adminpanel.its.a.very.long.url.mywebsite.com/Success

【问题讨论】:

    标签: facebook url redirect dns internal


    【解决方案1】:

    一个常见问题,很容易解决。在下面查看我的 PHP 代码:

    if ( strstr( 'adminpanel', $_SERVER['HTTP_HOST'] ) ) {
        // this is the localhost settings
    
        $facebook = new Facebook(array(
            'appId'  => 'xxx',
            'secret' => 'xxx',
        ));
    
        $app_url = 'http://adminpanel/';
        $fb_url = 'http://apps.facebook.com/xxx/';
    
        //  other settings can go here too
    
    } else {
        // this is the main / live site settings
    
        $facebook = new Facebook(array(
            'appId'  => 'yyy',
            'secret' => 'yyy',
        ));
    
        $app_url = 'http://adminpanel.its.a.very.long.url.mywebsite.com';
        $fb_url = 'http://apps.facebook.com/yyy';
    
        //  other settings can go here too
    
    }
    

    问题解决了!

    代码检查它在哪个host 上运行并为每个加载正确的设置。您需要在 Facebook 上拥有两个不同版本的应用程序。这将允许您分别为每个应用程序配置 URL(如上面的 PHP 代码中所示)。

    如果您使用不同的语言,您可以通过检测host 并将您的配置设置放在条件语句的相关部分中轻松地做同样的事情。它甚至允许您配置多个(即超过 2 个)环境。

    【讨论】:

    • 感谢您抽出宝贵时间回复,但我认为您的回答是针对不同情况的解决方案。我在问题中添加了更多细节,希望能说明我的意图。干杯!
    • Facebook 不支持在两个地点使用一个应用程序。您可以尝试将这两个 URL 添加到应用设置中的 App Domains 字段,但 Facebook 只会将用户重定向回应用设置中列出的 URL。添加多个域可能会解决此问题。
    • 是的,我已经尝试将adminpanel(并且只是“管理面板”)添加到应用程序域部分,但 facebook 不允许这样做。应用程序域:管理面板不是有效域。
    • 还有另一种选择。在您的本地机器上创建一个 VHOST 并将其命名为adminpanel.com。然后编辑您机器上的主机文件,将adminpanel.com 重定向到127.0.0.1。然后更新应用程序配置以将 FB 应用程序指向 adminpanel.com,就像您之前所做的那样。它会诱使 Facebook 认为它是一个有效的域,而您本地托管的代码仍然可以工作。
    • 对不起,代码不是本地托管在每个终端上,所以恐怕这不是一个合适的选择。再次感谢。奥利弗
    猜你喜欢
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多