我已经读过,但我找不到任何类似的问题,所以这里就是......
我有一个配置正常的Facebook应用程序,让我的网站URL为:
http://adminpanel.its.a.very.long.url.mywebsite.com
这在应用程序配置中被配置为“站点URL”,它可以正常工作。
但是,该网站也在我们的内部网络上使用DNS,允许我们使用
http://adminpanel/
问题是facebook app不允许'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
答案 0 :(得分: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个)环境。