3

我有一个非常简单的页面标签应用程序,可以添加到任何人的 FB 页面。我在我的网站上提供了一个按钮,以帮助用户将应用程序添加到他们的 FB 页面。

我想更新 iframe 页面选项卡 url(和安全 url)以包含查询字符串。这将允许为将应用程序添加到其页面的每个用户自定义 iframe 的内容。

一个基本用例是用户 1 单击按钮并将应用程序添加到他们的页面。iframe 的内容特定于用户 1。用户 2 执行相同操作,但其选项卡的内容特定于用户 2。我可以处理我网站上的查询字符串内容,以便它正确响应,但我不知道如何让 Tab url 从 Add App to Facebook 按钮添加查询字符串参数。

我正在使用的当前将应用添加到 facebook 代码:

<div id='fb-root'></div>
<script src='http://connect.facebook.net/en_US/all.js'></script>
<p><a onclick='addToPage(); return false;'>Add to Page</a></p>
<p id='msg'></p>

<script> 
  FB.init({appId: "252314034891861", status: true, cookie: true});

   function addToPage() {

  // calling the API ...
  FB.ui(
    {
        method: 'pagetab'
    },
    function(response) {
        if (response != null && response.tabs_added != null) {

            $.each(response.tabs_added, function(pageid) {
                  alert(pageid);
            });
        }
    }
  );


  }

</script>

感谢您的帮助!

编辑添加更多信息

在与另一位开发人员讨论后,我想确保我清楚。如果 User1 将选项卡添加到他们的页面,那么无论谁查看选项卡,内容将始终是 User1 的上下文。如果 User2 将此选项卡添加到他们的页面,那么无论谁查看该选项卡,内容都将与 User2 相关。选项卡的内容特定于将选项卡添加到其页面的用户。

4

1 回答 1

3

您应该根据页面 ID 而不是添加它的页面管理员的用户 ID 来更改内容。短版:这是因为您无法在应用程序负载中可靠地传递页面管理员的用户 ID(或任何其他信息,因为用户可以手动访问选项卡)

但是,页面 ID 会通过signed_requestpage的属性与其他一些参数一起传递给您的应用程序,包括当前用户 ID(如果他们已授权您的应用程序)以及他们是否喜欢该页面或是否是管理员页面的(不管他们的授权状态)

一个应用程序不能多次安装到一个页面上,因此应用程序 ID/页面 ID 将是唯一的

您可以传递给页面标签应用程序以自定义显示的唯一其他参数是app_data将在pagesigned_request的属性中发送的参数,但这仅适用于包含该参数的链接:用户直接点击页面标签获胜'没有传递那个参数并且会得到未定制的内容

有关更多信息,请参阅文档入门部分中的页面选项卡教程

于 2012-10-22T23:52:57.677 回答