使用C#sdk访问Facebook用户墙帖

时间:2011-04-17 06:56:27

标签: facebook-c#-sdk

我正在尝试为特定用户检索墙贴,类似的问题已在这里得到解答 - How to get posts of user,但由于某些奇怪的原因,它对我不起作用。

我按照codeplex文档中的文章 - Getting Started with an ASP.NET MVC 3 Website

AccountController代码类似于https://gist.github.com/899052,下面是尝试获取帖子的操作方法

var facebookId = long.Parse(User.Identity.Name);
var user = this.repository.Get(facebookId);
var fb = new FacebookWebClient(user.AccessToken);
dynamic result = fb.Get("me/feed");

但我总是在result.data中得到一个空数组。我不太确定,我是否需要设置任何权限,如果是这样我怎么能这样做?

更新:

在帐户控制器中,我没有在LogOn方法中请求权限,下面是它可以做的方式,这解决了问题

public ActionResult LogOn(string returnUrl)
{
   var oAuthClient = new FacebookOAuthClient(FacebookApplication.Current)
   {
       RedirectUri = GetOAuthCallbackUri()
   };
   Dictionary<string, object> parameters = new Dictionary<string, object>();
   parameters.Add("state", returnUrl);
   parameters.Add("scope", "offline_access,read_stream,user_photos,user_videos,publish_stream");
   var loginUri = oAuthClient.GetLoginUrl(parameters);
   return Redirect(loginUri.AbsoluteUri);
 }

在此之前,我收到了5.0.9 error on Exchange code for access token中提到的错误,但我下载了该帖子中回答的最新源代码

1 个答案:

答案 0 :(得分:2)

首先,确保您获得'read_stream'权限的授权,否则您将无法访问新闻Feed。

其次,浏览路径......

https://graph.facebook.com/[user_id]/feed?access_token=[access_token]

...收到访问令牌后,看看是否得到相同的结果。