2013-10-04 2 views
0

На данный момент я работаю с API Facebook и ASP.Net (MVC4).Facebook API получить сообщение на стене

Можно ли разместить определенное сообщение на моей стене Facebook и получить это сообщение в своем веб-приложении?

Я уже пробовал следующий код, но он не работает:

Может быть, кто-нибудь имеет решение? (Кроме того, я не хочу, чтобы сообщения ленты новостей, но из моего профиля стены)

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(); 

Update: Я просто хочу метод, который получает последние сообщения моей личного FB стены. Как это сделать?

Update 2: Сегодня я попробовал:

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

С помощью этого кода я могу получить последнее сообщение, но как я могу разделить его на читаемую строку? Поэтому я получаю только UserId, который отправляет сообщение и реальное (строковое) сообщение?

Update 3: На данный момент я использую этот код, чтобы получить записи на стене:

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

Но Visual Studio показывает эту ошибку:

An active access token must be used to query information about the current user.

Я использую следующий метод приема 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; 
     } 

Как решить эту проблему?

+0

У вас есть 'obj' правильно? –

+0

Приложение получает объект obj правильно. Проблема в том, что obj содержит последнюю новостную ленту, но не последнюю запись моей Facebook-стены. Мне просто нужен метод, который получает последние сообщения о моей личной стене FB. Как это сделать? – Odrai

ответ

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/ для объяснения процесса.

Login Flow

+0

Спасибо! У меня есть связанный с этим вопрос, чтобы получить сообщения на стене в Facebook: см. Обновление 3 в первом сообщении. – Odrai

+0

Можно ли получить настенные стойки без входа? Или я могу предоставить разрешение на подобное разрешение? – Odrai

+0

@Odrai вы можете использовать токен доступа к странице или приложению (после выписки вам не нужно будет заходить на сайт https://developers.facebook.com/tools/access_token) для общедоступных сообщений, для чего-то еще нужен токен доступа пользователя. – phwd

Смежные вопросы