使用Graph API发布到Facebook页面 - 返回ID但不显示

时间:2011-02-02 16:26:27

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

我正在尝试使用Facebook C#SDK发布到Facebook页面流,但我失败了。这就是我的代码:

var app = new Facebook.FacebookApp(_accessToken);
var parameters = new Dictionary<string, object>
     {
         { "message" ,  promotionInfo.TagLine },
         { "name" ,  promotionInfo.Title },
         { "description" ,  promotionInfo.Description },
         { "picture" ,  promotionInfo.ImageUrl.ToString() },
         { "caption" ,  promotionInfo.TargetUrl.Host },
         { "link" ,  promotionInfo.TargetUrl.ToString() },
         { "type" , "link" }
     };
var response = app.Post(_targetId + "/feed", parameters);

我已经检查过,我可以看到Fiddler中的请求进入Facebook,我收到了一个ID - 然而,当我尝试在http://graph.facebook.com/[parentid]_[postid]

查看该ID时

我只是得到一个“假”的页面,帖子也没有出现在Facebook页面上。如果我只是输入一个不存在的随机postid,我会得到“你请求的一些别名不存在”。

accessToken有权使用publish_stream和离线访问权限(使用this url生成)

任何想法可能会出错?感谢

  

更新我应该补充一下,如果我将_targetId更改为“我”(即直接发布到我自己的个人资料页面),这样可以正常工作

3 个答案:

答案 0 :(得分:3)

我在这里找到了解决方案:Which Facebook permissions allow for posting to a page wall (not profile wall)?完成了这个技巧

答案 1 :(得分:0)

这只是一个想法,但在获得read_stream扩展权限后尝试。

我从经验中知道你可以使用返回的ID来删除帖子,但没有read_stream我认为你不能检索它(以及更多有趣的东西,如评论)

答案 2 :(得分:0)

要发布到Facebook页面,您需要请求manage_pages权限。 你也必须使用PAGE access_token而不是用户access_token。