0

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

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

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

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

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 显示此错误:

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

我正在使用下一种方法来接收访问令牌:

 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;
        }

如何解决这个问题?

4

1 回答 1

2

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

/home- 用户的新闻提要。
/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/以了解该过程。

登录流程

于 2013-10-08T11:26:07.653 回答