代码之家  ›  专栏  ›  技术社区  ›  thaddeusmt

通过开放图形API管理Facebook页面标签应用程序?

  •  8
  • thaddeusmt  · 技术社区  · 14 年前

    具体来说,我希望能够通过API从用户页面添加或删除“Tab”应用程序。现在,引导用户完成将tab应用程序添加到他们的business(或Place)Facebook页面的过程非常复杂,如果他们可以授予我的应用程序权限,我可以用API为他们添加应用程序,那就太棒了。

    有人对此有经验吗?

    是我能做的最好的事情添加.php带有“page”GET变量的“page”(例如。 http://www.facebook.com/add.php?api_key=xxxx&pages=1&page=xxxxxx

    谢谢!

    3 回复  |  直到 14 年前
        1
  •  13
  •   thaddeusmt    12 年前

    值得一提的是,现在,任何人看这个问题(这是庆祝它的1岁生日!),Facebook在2011年7月大幅升级了API功能。现在,您可以通过opengraphapi添加、删除、重命名、重新排序并将选项卡设置为默认值。博文如下:

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

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

    Facebook还没有一个新的API方法来创建新的标签应用程序,或者改变标签图标。但这是一大步!

    更新: http://developers.facebook.com/bugs/295627350461318

        2
  •  3
  •   Daniel Fuchs    13 年前

    有一种方法可以通过API实现。经过几个小时的汗水和泪水,我们终于成功了:)

    最终产品是这样的- 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
  •  2
  •   Patrick    14 年前

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

    至于“有没有添加应用程序”的工作。。。算是吧。它会告诉你应用程序是否被添加到页面中,但不会告诉你标签是否被启用。例如,用户可以禁用该选项卡,但从技术上讲,仍然可以在页面上安装该应用程序。因此,“has\u added\u app”将返回true,即使选项卡实际上不可见。