Как получить весь пост, имеющий post_id БЕЗ использования FQL - .NET? - PullRequest
2 голосов
/ 19 сентября 2011

Я много раз искал ответ на этот вопрос, но не нашел ни одного полезного ресурса.Я делаю пост на своей стене с "https://www.facebook.com/dialog/feed?app_id={0}&display=page&canvas=1&redirect_uri={1}",, работает отлично, я разместил на своей стене и в качестве ответа я получаю post_id в строке запроса на моем * redirect_uri * (я делаю пост с диалогом).Теперь, что мне не удается сделать ... это получить полную информацию о публикации с графиком Facebook, без использования FQL, я нашел много примеров того, как получить ее с помощью FQL Select .. но я действительно хочу сделать это только с помощью графикаЯ делаю все это в .net, я пробовал на проводнике facebook grapk: это точный URL: http://developers.facebook.com/tools/explorer/266888499999433/?method=GET&path=100002843173627_116703548434417. Используя метод http GET и имея access_token, я получаю ответ, который хочу, но делаю это из своегокод, который мне не удался. если я делаю GET для http://graph.facebook.com/POST_ID, я получаю ответ в виде строки false ... и если я добавлю ? access_token = MY_ACCESSTOKEN в строке запроса я получаю ошибка 400 неправильный запрос . У меня есть класс с этим методом:

 public Facebook.JSONObject GetPostInfo(string postID)
    {
        //"&access_token=" + this.Token
        string url = "http://graph.facebook.com/" + postID ;
        string json = this.WebRequest(MyFacebookAPI.oAuthFacebook.Method.GET, url ,String.Empty);
        return Facebook.JSONObject.CreateFromString(json);
    } 

Спасибо.

1 Ответ

2 голосов
/ 27 сентября 2011

ОК. Я наконец-то нашел решение:

if (CanvasAuthorizer.Authorize())
        {
            var fb = new FacebookWebClient();

            dynamic parameters = new ExpandoObject();
            parameters.message = txtMessage.Text;

            try
            {
                dynamic id = fb.Post("me/feed", parameters);
                lblPostMessageResult.Text = "Message posted successfully";
                txtMessage.Text = string.Empty;

                //get post id
                IDictionary<string, object> data = new Dictionary<string, object>();
                data.Add("access_token", CanvasAuthorizer.FacebookWebRequest.AccessToken);
                dynamic thePost = fb.Get(String.Format("{0}", id.id), data);

                string post = String.Format("Post:{0} From: {1} Message: {2}", thePost.id, thePost.from.name, thePost.message);
                lblPostMessageResult.Text = Environment.NewLine + post;
            }
            catch (FacebookApiException ex)
            {
                lblPostMessageResult.Text = ex.Message;
            }
        }

, где первая часть создает сообщение с «сообщением», а вторая часть - с идентификатором, который мы получили из сообщения.

Вам необходимо иметь расширенные права доступа: publish_stream, read_stream , чтобы это работало + добавление access_token в качестве параметра в метод Get.Я надеюсь, что мой пост поможет некоторым людям, у которых есть проблемы, понять это правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...