我一直在调查Facebook Open Graph API。有一个“管理页面”扩展权限允许通过“模拟”发布到用户的Facebook页面新闻源/墙。这是一个很好的功能,但是你可以通过API做些什么吗?
具体来说,我希望能够通过API从用户页面添加或删除“Tab”应用程序。现在,引导用户完成向他们的业务(或Place)Facebook页面添加标签应用程序的过程很复杂,如果他们可以授予我的应用程序权限并且我可以使用API为他们添加应用程序,那将会很棒。
基本上我想知道API是否允许真正的“页面管理”,或只是发布到页面。
任何人都有这方面的经验吗?
我能做的最好是将它们指向带有“page”GET变量的“add.php”页面(例如http://www.facebook.com/add.php?api_key=xxxx&pages=1&page=xxxxxx)吗?这对于添加选项卡应用程序很有效,但据我所知,没有任何东西可以帮助他们从他们的页面中删除应用程序。
谢谢!
答案 0 :(得分:13)
现在值得注意的是,对于任何观看此问题的人(庆祝它是1岁生日!),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
答案 1 :(得分:3)
有一种方法可以通过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));
}
}
}
答案 2 :(得分:2)
是的,您可以做的最好的事情就是将它们引导到add.php网址。您无法帮助他们删除该应用。
好消息是,用户过去必须通过添加过程并在物理上决定通过在页面的标签下拉列表中找到它来“启用”标签。 Facebook最近改变了这一点,似乎用户将应用添加到他们的页面后立即启用该选项卡。
至于“has_added_app”有效... sorta。它会告诉您应用程序是否已添加到页面中,但它不会告诉您是否启用了该选项卡。例如,用户可以禁用选项卡,但技术上仍然在页面上安装了应用程序。因此,即使选项卡实际上不可见,“has_added_app”也会返回true。