我正在尝试为特定用户检索墙贴,类似的问题已在这里得到解答 - 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中提到的错误,但我下载了该帖子中回答的最新源代码
答案 0 :(得分:2)
首先,确保您获得'read_stream'权限的授权,否则您将无法访问新闻Feed。
其次,浏览路径......
https://graph.facebook.com/[user_id]/feed?access_token=[access_token]
...收到访问令牌后,看看是否得到相同的结果。