在一个Facebook应用程序中使用多个画布URL

时间:2014-01-31 16:37:55

标签: javascript facebook facebook-graph-api

我正在尝试在不同的域上托管我的网络应用。但我会收到如下错误:

应用程序配置不允许使用URL:应用程序的设置不允许使用一个或多个给定的URL。它必须与网站URL或Canvas URL匹配,或者域必须是App域之一的子域。

然而,似乎我只能在我的Facebook设置页面中设置一个画布URL和安全画布URL。是否可以在不同的域上托管我的Web应用程序?非常感谢你!

1 个答案:

答案 0 :(得分:0)

如果您可以在SSL主机上托管单个php文件(尽管它根本不包含php,只有javascript),您可以执行此操作。我写了一个blog post关于如何使用共享同一个画布网址的2个应用程序。

此主机必须使用SSL主机才能运行。共享证书也可以使用。

您需要在index.php文件中填写短篇小说:

var urlString=document.referrer;

var pageNameN = "?p="; //this is specific to the first application

var pageNameZ = "?url=";// this is specific to the second application


var indexN = urlString.indexOf(pageNameN);// and get its index.

var indexZ = urlString.indexOf(pageNameZ);// and get its index.


if(indexN != -1){
  var resN = urlString.substring(indexN);
  location.href = "https://FIRST_APPLICATION_URL/"+resN; }

else {  
if(indexZ != -1){
    var resZ = urlString.substring(indexZ);
    location.href = "https://SECOND_APPLICATION_URL"+resZ; }

} 

您捕获请求,然后根据请求网址将其拆分。

在帖子中你还可以找到我在我的情况下使用的index.php文件,你也可以下载。