2012-05-22 91 views
0

我读过左右,但我不能因此在这里找到任何类似的问题去...允许应用程序配置内部网站的网址以及网络可见网站网址

我有一个Facebook应用程序,它是配置和工作正常,让我的网站URL为:

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

这是配置为应用程序配置中的'站点URL',它工作正常。

然而,该网站还与DNS,使我们能够使用

http://adminpanel/ 

的问题是,Facebook的应用程序不会允许a'redirect_uri”是用我们的内部网络上

http://adminpanel/ 

并且因以下原因而失败:

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

是否有可能允许提前两

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

http://adminpanel/ 

感谢,

奥利

更新:我不能使用两个应用程序作为我依靠'添加页面标签对话'来添加我的appl提供各种页面。

我需要的是这两个重定向(由'下一个'参数指定)被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

回答

0

一个共同的问题,而且它很容易修复。看看我的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个)环境。

+0

感谢您花时间回复,但我认为您的答案是针对不同情况的解决方案。我在这个问题中增加了更多细节,希望能够清楚我的意图。干杯! –

+0

对两个位置使用一个应用程序不是Facebook支持的。您可以尝试将两个网址添加到应用设置中的“应用域名”字段,但Facebook只会将用户重定向回应用设置中列出的网址。添加多个域可能会解决问题。 –

+0

是的,我已经尝试将http:// adminpanel(并且只是'adminpanel')添加到App Domain部分,但是Facebook不允许它。 应用程序域:adminpanel不是有效的域。 –