通过Open Graph API管理Facebook页面标签应用程序?
我一直在调查Facebook Open Graph API。有一个“管理页面”的扩展权限,允许通过“模仿”发布到用户的Facebook Page新闻提要/墙上。这是很好的功能,但是您还可以通过API做更多事情吗?通过Open Graph API管理Facebook页面标签应用程序?
具体来说,我希望能够通过API从用户页面添加或删除“Tab”应用程序。现在,指导用户完成向其业务(或Place)Facebook页面添加选项卡应用程序的过程非常复杂,如果他们可以授予我的应用程序权限并且可以使用API为他们添加应用程序。
基本上我想知道如果API允许真正的“页面管理”,或只是张贴到页面。
任何人都有这方面的经验?
我可以用“页面”GET变量(例如http://www.facebook.com/add.php?api_key=xxxx&pages=1&page=xxxxxx)将它们指向“add.php”页面吗?这对于添加标签应用程序是行得通的,但根本没有什么可以帮助他们从他们的页面中删除应用程序。
谢谢!
值得一现指出,对任何人观看了这个问题(!这是庆祝它的一周岁生日),称Facebook显著升级了他们的API功能回现在您可以通过Open Graph API添加,删除,重命名,重新排序并将标签设置为默认。这篇博客是在这里:
https://developers.facebook.com/blog/post/524/
而且官方文档是在这里:
https://developers.facebook.com/docs/reference/api/page/#tabs
什么Facebook并没有尚未是一个用于创建新标签应用了新的API方法,或更改选项卡图标。尽管这是一大步!
UPDATE:上有新的bug跟踪系统,遵循有关API创建的应用程序,如果你想跟踪一下,看看他们在做什么错误:http://developers.facebook.com/bugs/295627350461318
刚刚发布了一个关于如何通过API更新时间轴页面的新选项卡图像的问题和解答:http://stackoverflow.com/questions/9503366/how-to-upload-custom-app-image-tab-image -for-timeline-page-tabs-via-api/9522597 – thaddeusmt 2012-03-01 19:38:34
官方选项卡文档的链接已更改为:https://developers.facebook.com/docs/graph-api/reference/v2.2/page/标签 – donut 2015-01-21 17:54:47
是的,你可以做的最好的事情是引导他们到add.php网址。你无法做任何事情来帮助他们删除应用程序。
好消息是,用户过去必须经历添加过程,并在页面的标签下拉列表中找到它,并且实际决定“启用”标签。 Facebook最近改变了这一点,看起来这个标签现在在用户将该应用添加到他们的页面后立即启用。
至于“has_added_app”,它的工作原理... sorta。它会告诉你该应用是否被添加到页面,但它不会告诉你该选项卡是否启用。例如,用户可以禁用该选项卡,但技术上仍然在该页面上安装应用程序。因此,即使该选项卡实际上不可见,“has_added_app”也会返回true。
感谢您的答案!我担心这种情况,只是想方设法确保没有一些隐藏的“特征”。我将不得不玩弄has_added_app,这至少有点帮助。 – thaddeusmt 2010-09-22 02:08:28
有一种方法可以通过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));
}
}
}
谢谢丹尼尔,我将不得不尝试一下。 – thaddeusmt 2011-10-04 15:53:24
它看起来像我可能能够至少看看我正在使用的应用程序是否已通过“has_added_app”FQL查询添加到页面http://developers.facebook.com/docs/reference/fql/page – thaddeusmt 2010-09-21 03:31:39