我在这个 URL 上有这个 HTML:https://myapp.herokuapp.com
<html>
<body>
<iframe frameborder=0 border=0 scrolling="no" src="<?php echo $_GET['url']; ?>" width="760px" height="521px"></iframe>
</body>
</html>
我创建了一个 Facebook 页面选项卡,我希望任何人都可以使用不同的 URL 将它安装到他们的 Facebook 页面上。因此,当您单击 FB 页面 1 上的选项卡时,它将显示嵌入的 URL1,FB 页面 2 将显示 URL2,依此类推。然后,该 URL 是您安装页面选项卡时的一个参数。
我试过这个:
https://www.facebook.com/dialog/pagetab?app_id=XXXXXXXXXX&next=https://myapp.herokuapp.com?url=HERE_YOUR_URL
它正在安装应用程序,但似乎 iframe 中的 URL 参数为空。我做错了什么?
谢谢
最佳答案
我的方法有点不同。
虽然可能无法使用 URL 参数安装应用程序,但您可以根据首先加载它们的页面来调整它们的内容。正如页面选项卡 Facebook API 集成教程所述:
When a user selects your Page Tab, you will receive the signed_request parameter with one additional parameter, page. This parameter contains a JSON object with an id (the page id of the current page) (SOURCE)
因此,您将在多个 页面上安装相同 应用程序,并在顶部使用以下代码(在您创建$facebook
对象):
$page_id = "";
$sr = $facebook->getSignedRequest();
if($page = $sr['page']) {
$page_id = $page['id'];
}
您现在应该能够使用 $page_id
作为唯一标识符来告诉您用户当前正在查看应用程序的页面,而不是 $_GET
变量。 Switch
语句或数据库集成是首先想到的方法,但您似乎在问如何识别和检索 一个独特的参数,而不是如何使用它,所以我相信你会自己解决这个问题。 :)
注意:这(显然)不适用于安装在同一页面的多个页面选项卡上的应用程序,但这似乎不是您关心的问题。
关于facebook - 将参数传递给 Facebook Page Tab 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23727683/