Как получить общедоступные сообщения на стене с помощью facebook API

Я пытаюсь получить сообщения на стене из профиля facebook. У меня нет проблем с фан-страницами, и мой токен пользователя действителен (по крайней мере, для фан-страниц).

Пример с этим сообщением: https://www.facebook.com/aurelia.filion/posts/10151342315613445 Как видите, запись общедоступна.

Итак, я пытаюсь: graph.facebook.com/529628444_10151342315613445?access_token=MY_TOKEN graph.facebook.com/10151342315613445?access_token=MY_TOKEN

он возвращает: «ошибка»: { «сообщение»: «Неподдерживаемый запрос на получение». «Тип»: «GraphMethodException», «код»: 100

В моем графическом обозревателе Api я также не вижу сообщений от этого пользователя. graph.facebook.com/529628444?fields=posts (529628444 — это идентификатор aurelia.filion)

Так можно ли получить сообщения на стене? Это общедоступно, это должен быть способ их получить

Благодарность


ок, я объясню по-другому, моя цель - получить такие посты с графиком (могу получить все остальные посты, кроме тезисов)

facebook.com/aurelia.filion/posts/10151342315613445

facebook.com/aurelia.filion/posts/10151336175793445

но я получаю сообщение об ошибке «Неподдерживаемый запрос на получение».

я пробовал и токен пользователя, и токен приложения, эта ссылка не работает: graph.facebook.com/529628444_10151342315613445?access_token=MY_TOKEN

когда я пытаюсь работать с лентой, я не вижу там нужных сообщений.

И если я запрошу посты graph.facebook.com/529628444/posts?limit=100&access_token=TOKEN, я увижу все (ссылки, фото и т.д.), кроме гребаных постов!!

Как я могу получить эти сообщения, это проблема с токеном, похоже, это статус, отличается ли он от получения, я имею в виду, нужны ли нам разрешения? graph.facebook.com/529628444?fields=statuses&access_token=TOKEN не возвращает никаких результатов! Пусто!

РЕДАКТИРОВАТЬ


person user2208252    schedule 25.03.2013    source источник
comment
Не знаю, почему эта страница выдает ошибку «Неподдерживаемый запрос на получение», если у вас нет действительного токена. Я пробовал это с действительным токеном доступа пользователя и приложения и смог получить данные. Если я попробую без маркера или с использованием маркера с истекшим сроком действия, я получу неподдерживаемую ошибку запроса на получение вместо правильной ошибки.   -  person cpilko    schedule 25.03.2013
comment
Посмотрите мой ответ /вопрос. Это не становится проще, чем это.   -  person craned    schedule 28.10.2015


Ответы (2)


РЕДАКТИРОВАТЬ

Этот ответ был написан еще тогда, когда версия Graph API была первой. Тогда вы могли получить пользовательский канал, используя идентификатор пользователя, сейчас идентификатор пользователя больше не используется между приложениями. Также Facebook создал новый API, который доступен только некоторым партнерам.

Так что прямо сейчас вы не можете получить общедоступную ленту пользователей, если только пользователь не использовал ваше приложение. Тем не менее, вы все равно можете получить ленту страниц.

Старая версия

Этот ответ был для графа API v1

Так что вы должны использовать это https://graph.facebook.com/529628444?fields=feed&access_token=YOUR_TOKEN

И если все, что вам нужно, это запрос общедоступных данных, вы можете создать токен APP, выполнив следующие действия:

https://graph.facebook.com/oauth/access_token?
client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&
grant_type=client_credentials 

И используйте этот токен вместо использования вашего пользовательского токена.

person Fabio Antunes    schedule 25.03.2013
comment
не могли бы вы подробнее объяснить, как получить данные из общедоступной записи на стене с помощью facebook.com/aurelia.filion сообщения на стене в качестве примера. Я не уверен, как реализовать то, что вы описали. Спасибо! - person MicFin; 23.08.2014
comment
Больше не работает с новыми определениями API Facebook. - person fiatjaf; 14.11.2015

Я не знаю, слишком ли старый этот пост, но я только что нашел его, когда искал решение своей проблемы.

В любом случае, я просто покажу, как мне удалось получить фиды от публичного пользователя:

        var fbul = "https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=[AppID]&client_secret=[AppSecret]";
        var fburl = "https://graph.facebook.com/201317759900688?fields=feed&";

        $.get(fbul, function(auth_token){
            $.ajax({
                dataType: "jsonp",
                url: fburl+auth_token,
                success: function(res){
                    console.log(res);

                }
            });
        });

И вот небольшое пояснение: вам нужно перейти в консоль разработчика facebook (https://developers.facebook.com ) и зарегистрируйте новое веб-приложение. Просто зайдите в «Мои приложения» в верхней части навигации и выберите «Добавить новое приложение». Как только это будет сделано, вы можете получить доступ к своему идентификатору приложения и секрету вашего приложения.

Первая ссылка «var fbul» предназначена для получения вашего access_token, необходимого для доступа к каналам.

var fbul = "https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=[AppID]&client_secret=[AppSecret]";

Просто измените [AppID] и [AppSecret] на свои собственные ключи.

Вторая ссылка для доступа к каналу (мы не добавляем здесь access_token, потому что мы делаем это в нашем запросе ajax)

var fburl = "https://graph.facebook.com/201317759900688?fields=feed&";

Число здесь (2013177599....) — это идентификатор канала с общедоступного сайта. Чтобы получить этот номер, просто зайдите на http://findmyfacebookid.com/ и введите URL-адрес facebook для обычного пользователя.

Это почти все, что вам нужно.

Теперь напишите свой запрос ajax следующим образом:

$.get(fbul, function(auth_token){
            $.ajax({
                dataType: "jsonp",
                url: fburl+auth_token,
                success: function(res){
                    console.log(res);

                }
            });
        });

Теперь вы увидите результаты в своей консоли.

Используйте функцию успеха, чтобы обрабатывать результаты так, как вы хотите.

person Daniel    schedule 17.07.2015
comment
Отлично работает, кроме инструмента для поиска идентификатора, у меня сработал этот - findmyfbid.in - person user2475624; 26.07.2019