【问题标题】:Manage Facebook Page tab apps via Open Graph API?通过 Open Graph API 管理 Facebook 页面标签应用程序?
【发布时间】:2011-04-14 23:58:56
【问题描述】:

我一直在研究 Facebook Open Graph API。有一个“管理页面”扩展权限,允许通过“模拟”发布到用户的 Facebook 页面新闻源/墙。这是很好的功能,但是您可以通过 API 做更多的事情吗?

具体来说,我希望能够通过 API 从用户页面添加或删除“标签”应用程序。现在,引导用户完成将标签应用程序添加到他们的业务(或地方)Facebook 页面的过程很复杂,如果他们可以授予我的应用程序权限并且我可以使用 API 为他们添加应用程序,那就太棒了.

基本上我想知道 API 是否允许真正的“页面管理”,或者只是发布到页面。

有人有这方面的经验吗?

我能做的最好的事情是用“page”GET变量(例如http://www.facebook.com/add.php?api_key=xxxx&pages=1&page=xxxxxx)将它们指向“add.php”页面吗?这适用于添加选项卡应用程序,但据我所知,没有什么可以帮助他们从页面中删除应用程序。

谢谢!

【问题讨论】:

标签: php facebook facebook-opengraph


【解决方案1】:

是的,您能做的最好的就是将它们定向到 add.php 网址。您无法帮助他们删除该应用。

好消息是,用户过去必须通过添加过程并通过在页面上的选项卡下拉列表中找到选项卡来实际决定“启用”选项卡。 Facebook 最近改变了这一点,现在似乎在用户将应用添加到他们的页面后立即启用该选项卡。

至于有效的“has_added_app”......有点。它会告诉您应用程序是否已添加到页面,但不会告诉您选项卡是否已启用。例如,用户可以禁用选项卡,但从技术上讲,该应用程序仍安装在页面上。因此,即使选项卡实际上不可见,“has_added_app”也会返回 true。

【讨论】:

  • 感谢您的回答!我担心是这种情况,只是四处摸索以确保没有一些隐藏的“功能”。我将不得不使用 has_added_app,这至少有点帮助。
【解决方案2】:

有一种方法可以通过 API 来实现。经过数小时的汗水和泪水,我们终于开始工作了:)

您可以在不离开应用的情况下向页面添加标签。这是我们用于此的代码的 sn-p。我们得到一个用户管理的页面列表,在下拉列表中显示它们,并要求他们选择他们想要添加我们的“我的代理配置文件”选项卡的页面。

最终产品看起来像这样 - http://www.facebook.com/pages/Jennifer-Anderson-Real-Estate-Agent/185071901564573?sk=app_253956901293839

protected void btnAddTab_Click(object sender, EventArgs e)
{
    if (ddlPage2.SelectedIndex >= 0)
    {
        FaceBookPages page = FaceBookPages.LookupByPageID(long.Parse(ddlPage2.SelectedValue));
        if (page == null)
            throw new NPlaySysException("FaceBookPages is null.");

        AnalyticLog log = new AnalyticLog();
        log.EventID = FBCommon.Events.AddAgentAppTabID;
        log.UserID = UserID;
        log.EventTime = DateTime.Now;
        log.Update();

        string result = FacebookSvc.AddTab(Web.AgentAppID, "me", page.AccessToken);
        if (result.Equals("true"))
        {
            FaceBookPages.UpdateAgentProfileAdded(page.PageID, true);
            List<FaceBookPages> notTabbedPages = FaceBookPages.LookupAgentProfileNotAddedByUserID(UserID);

            imgStep3.ImageUrl = StepDoneImagePath;
            divStep3.Attributes["class"] = StepDoneCssClass;
            phStep3.Visible = false;
            Step3Done = true;
            btnCloseStep3.Visible = false;

            if (notTabbedPages.Count > 0)
                btnEditStep3.Visible = true;
            else
                btnEditStep3.Visible = false;
        }
        else
        {
            lblErrorAddTab.Text = "Failed to add your profile to page.";
            Web.EmailError(string.Format("FacebookSvc.AddTab Failed. result={0}<br />UserID={1}<br />PageID={2}", result, UserID, page.PageID));
        }
    }
}

【讨论】:

  • 谢谢丹尼尔,我得试试这个。
【解决方案3】:

现在值得注意的是,对于查看此问题的任何人(正在庆祝它的第一个生日!),Facebook 在 2011 年 7 月显着升级了他们的 API 功能。您现在可以添加、删除、重命名、重新排序并将标签设置为默认通过 Open Graph API。博文在这里:

https://developers.facebook.com/blog/post/524/

官方文档在这里:

https://developers.facebook.com/docs/reference/api/page/#tabs

Facebook 还没有一种用于创建新标签应用程序或更改标签图标的新 API 方法。这是一大步!

更新:关于在 API 中创建应用程序的新错误跟踪器上有一个错误需要关注,如果您想关注它并看看他们做了什么:http://developers.facebook.com/bugs/295627350461318

【讨论】:

猜你喜欢
  • 2012-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-01
  • 1970-01-01
相关资源
最近更新 更多