您不能以这种方式传递文件名,这仅在 Canvas 应用程序上受支持。
复制此问题的最佳解决方法是使用该app_data
参数。基本上,让您的登录页面(在您的应用程序设置中定义)是某种侦听Signed Request的服务器端脚本,特别是 app_data 参数。然后,您让该脚本根据其内容加载内容。
例如,假设我想加载http://mybasedomain.com/foo.php或http://mybasedomain.com/bar.php。我将用户定向到https://www.facebook.com/ PAGENAME /app_ APPID ?app_data= foo或https://www.facebook.com/ PAGENAME /app_ APPID ?app_data= bar,然后在我的登录页面上,我有一个简单的if/else
语句来解析并呈现相关内容 -
<?php
// Assumes you have this parse_signed_request function - https://gist.github.com/872837
// And a $config array, which contains your app_secret
$signed_request = parse_signed_request($_REQUEST['signed_request'], $config['AppSecret']);
if ($signed_request['app_data'] === 'foo') {
include('foo.html');
} else if ($signed_request['app_data'] === 'bar') {
include('bar.html');
} else {
include('index.html');
}