facebook - 将参数传递给 Facebook Page Tab 应用

标签 facebook facebook-graph-api facebook-page facebook-iframe

我在这个 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/

相关文章:

Facebook Canvas 应用程序正在部分加载

java - 首次尝试使用链接参数失败的 Facebook 发布

javascript - 带有 ios 的 Phonegap 中的 Facebook javascript sdk?

Android Facebook 实现 SSO

facebook-graph-api - 连接失败 2a03 :2880:10:1f03:face:b00c:0:26: Network is unreachable from Facebook PHP SDK

java - 单击 AlertDialog 的“肯定”按钮时获取 'E/AndroidRuntime: Error reporting crash android.os.TransactionTooLargeException'

c# - 获取 Facebook TOKEN 的客户端凭据

java - 使用应用程序访问 token 在 Facebook 页面上发帖

ios - 如何在 Facebook 帖子上获取直接打开应用程序的按钮?