facebook作为页面发布到墙上

时间:2011-07-29 19:03:46

标签: facebook facebook-graph-api facebook-c#-sdk

我正在开发一个facebook应用程序。

在我的应用程序中,我想让页面管理员能够发布到他们的页面墙上,而不是作为用户,而是他们自己页面。

可以这样做吗?如果是这样的话?

谢谢。

1 个答案:

答案 0 :(得分:0)

当提示用户具有“manage_pages”权限时,显然可以这样做。然后可以查询页面的访问令牌,并在页面名称中执行操作。 您可以在此处查看此文档: http://developers.facebook.com/docs/authentication/

这是一个小代码示例,它使用facebook c#sdk看起来如何:

            dynamic pagesInfo = FacebookApp.Api("/me/accounts");
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string pageAccessToken = null;
            foreach(IDictionary<string,object> page in serializer.DeserializeObject(pagesInfo.data.ToString()))
            {
                long pageId = long.Parse(page["id"].ToString());
                if (pageId == localBusiness.FanPageId)
                {
                    pageAccessToken = page["access_token"].ToString();
                }
            }
            if (pageAccessToken == null)
                return;

        var pageFbApp = new FacebookApp(pageAccessToken);
        // post as application
        Dictionary<string, object> parameters = new Dictionary<string, object>()
                                                {
                                                    {"from", 
                                                    new Dictionary<string,object>()
                                                    {
                                                        {"id" , localBusiness.FanPageId},
                                                        {"name" , localBusiness.Name}
                                                    }},
                                                    {"description", description},
                                                    {"link", pageUrl },
                                                    {"name", name  },
                                                    {"picture" , imageUrl }
                                                };

        dynamic result = pageFbApp.Post(localBusiness.FanPageId + "/feed", parameters);