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

Javascript 在一个Facebook应用程序中使用多个画布URL,javascript,facebook,facebook-graph-api,Javascript,Facebook,Facebook Graph Api,我正在尝试在不同的域上托管我的web应用程序。但我会收到如下错误: 应用程序配置不允许给定URL。示例:应用程序的设置不允许一个或多个给定URL。它必须与网站URL或画布URL匹配,或者域必须是应用程序域之一的子域 然而,我似乎只能在我的Facebook设置页面中设置一个画布URL和安全画布URL。可以在不同的域上托管我的web应用程序吗?多谢各位 如果您可以在SSL主机上托管单个php文件(尽管它根本不包含php,只包含javascript),那么您就可以这样做。我写了一篇关于如何使用共享同一

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

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


然而,我似乎只能在我的Facebook设置页面中设置一个画布URL和安全画布URL。可以在不同的域上托管我的web应用程序吗?多谢各位

如果您可以在SSL主机上托管单个php文件(尽管它根本不包含php,只包含javascript),那么您就可以这样做。我写了一篇关于如何使用共享同一画布url的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; }

} 
您捕获请求,然后根据请求的url将其拆分


在文章中,您还可以找到我在本例中使用的index.php文件,您也可以下载。

您可能需要两个单独的应用程序,或者您可以使用应用程序访问令牌在特定事件触发时以编程方式更改画布URL。Facebook不允许画布应用程序使用多个域/url。