Facebook API接收Wall帖子

时间:2013-10-04 17:05:06

标签: asp.net facebook facebook-graph-api facebook-c#-sdk

目前我正在使用Facebook API和ASP.Net(MVC4)。

是否可以在我的Facebook Wall上发布某条消息并在我的网络应用程序中接收该消息?

我已经尝试了下一个代码,但它不起作用:

也许有人有解决方案? (我也不想要新闻提要的帖子,而是我的个人资料墙的帖子)

JsonObject fbJsonFeedObj = (JsonObject)fbApp.Get(" https://graph.facebook.com/me/home?fields=from,message,name,picture&access_token=" + token);

string str = fbApp.Get("/me/feed").ToString();
JObject obj = JObject.Parse(str);
JToken jUser = obj["data"];
int numb = jUser.Count();

//Get latest post
int id_post = 0;
string stringMsg = obj["data"][id_post]["likes"].ToString();

更新 我只想要一个方法来获取我个人FB墙的最新帖子。如何做到这一点?

更新2: 今天我试过了:

  

JsonObject fbJsonFeedObj =(JsonObject)fbApp.Get(“   https://graph.facebook.com/“+ FacebookModel.TestFacebookID +   “/ feed?access_token =”+ token);

使用此代码我可以获得最新帖子,但如何将其拆分为可读字符串?所以我只收到发送帖子和真实(字符串)消息的UserId?

更新3: 目前我正在使用此代码来获取墙贴:

  var wall = (JsonObject)fbApp.Get("/me/feed");

但是Visual Studio显示了这个错误:

  

必须使用活动访问令牌来查询有关的信息   当前用户。

我正在使用下一个方法来接收accesstoken:

 public static string GetAccessToken()
        {
            var fb = new FacebookClient();
            dynamic result = fb.Get("oauth/access_token", new
            {
                client_id = FACEBOOK_APP_ID,
                client_secret = FACEBOOK_SECRET,
                grant_type = "client_credentials"
            });
            return result.access_token;
        }

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

最初的问题是您使用的是/home而不是/feed

/home - 用户的新闻Feed /feed - 用户的墙。

https://developers.facebook.com/docs/reference/api/user/

您可以像使用上一个(/home)对象

一样拆分它
//Get latest post
int id_post = 0;
string stringPostId = obj["data"][id_post]["id"].ToString(); //Id of the post
string stringPostSender = obj["data"][id_post]["from"]["name"].ToString(); //Name of sender
string stringPostSenderId = obj["data"][id_post]["from"]["id"].ToString(); //ID of sender

每个对象都是这样的,所以你应该能够弄清楚如何向下钻取

{
      "id": "5_11111111", 
      "to": {
        "data": [
          {
            "name": "User A", 
            "id": "4"
          }
        ]
      }, 
      "from": {
        "name": "User B", 
        "id": "5"
      }, 
      "message": "This is a test message", 
      "created_time": "2013-10-04T23:01:42+0000"
    }

您的上一次更新是许多首次开发人员犯下的常见错误。

不应将应用程序访问令牌用于这些调用。您必须拥有登录流程才能通过OAuth以

开头授予用户访问令牌
https://www.facebook.com/dialog/oauth?
    client_id={app-id}
   &redirect_uri={redirect-uri}

请详细阅读https://developers.facebook.com/docs/facebook-login/login-flow-for-web-no-jssdk/以获取有关此过程的说明。

Login Flow