Публикация комментариев, созданных приложением, на странице Facebook с использованием Java

Я пытаюсь оставлять комментарии на странице приложения в Facebook. Мое приложение написано на java с использованием Spring MVC. Функциональность, которую мне нравится реализовывать, - это когда я публикую текст на своей странице из своего бэк-офиса, это же сообщение будет опубликовано на моей странице в Facebook. До сих пор я делал это для Twitter, и он работает очень хорошо. В Facebook я столкнулся с проблемой. Из того, что я нашел, единственный API, который почти обновлен, - это RestFB. Я пробовал следующее, как показывает их пример:

FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN);
FacebookType publishMessageResponse =
facebookClient.publish("me/feed", FacebookType.class,
Parameter.with("message", "RestFB test"));

Я создал свое приложение на https://developers.facebook.com и получил оттуда токен доступа. Но это привело к исключению, что у меня нет необходимых разрешений. Я искал в Интернете и наткнулся на сообщение здесь: Facebook: отправьте приложение приглашение

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

Кто-нибудь может мне помочь. Это api в актуальном состоянии? Я проверяю, последняя дата публикации была октябрь 2011 года, и я знаю, что Facebook внес некоторые изменения после нового года. Кроме того, есть ли другой лучший API? И, наконец, если кто-то знает, как это сделать, он может опубликовать здесь пример.

@Alexandre @Tartoth

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

String tokenUrl = "https://graph.facebook.com/oauth/access_token?client_id=" + appId + "&client_secret=" + appSecret
                + "&grant_type=client_credentials";
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod(tokenUrl);

        client.executeMethod(method);
        String rawAccessToken = new String(method.getResponseBody());

        String accessToken = rawAccessToken.split("=")[1];

        FacebookClient facebookClient = new DefaultFacebookClient(accessToken);
        String to = appId +"/feed";

        facebookClient.publish(to, FacebookType.class,
                Parameter.with(msg, "RestFB test"));

Обновление: я решил более раннюю проблему. И теперь мое приложение получает токен приложения, и я могу использовать его для публикации сообщений, но проблема в том, что эти сообщения нельзя просмотреть на странице приложения. Я знаю, что сообщение опубликовано, потому что я могу получить к нему доступ, используя https://graph.facebook.com/publishedMessageId. Теперь мой новый вопрос:

Это правильный способ отображения сообщений на странице приложения? Причина этого вопроса в том, что на странице приложения при открытии непосредственно из Facebook отображается только статус обновления. Но когда я смотрел на RestFb api, я не объяснял, как вы можете обновить статус приложения.

Если это не так, может кто-нибудь объяснить мне, как я могу обновить статус как приложение. Это означает, что все, что я хочу достичь, - это когда я что-то меняю в своем веб-приложении (с точки зрения публикации некоторых новостей), я хочу, чтобы мой статус на моей странице приложения facebook имел те же новости.


person Mitko Zafirovski    schedule 26.03.2012    source источник
comment
Какие разрешения вы запрашиваете при создании access_token? Не могли бы вы показать свой код для создания access_token?   -  person Alexis Dufrenoy    schedule 26.03.2012
comment
@Traroth, я отредактировал свой пост и включил код, который я использую для создания токена доступа   -  person Mitko Zafirovski    schedule 27.03.2012


Ответы (1)


Вам необходимо отправлять сообщения с помощью токена доступа к странице, который является пользователем (администратором страницы), который предоставляет приложению разрешение «manage_pages».

Документация: https://developers.facebook.com/docs/authentication/pages/

person Alexcode    schedule 26.03.2012
comment
Я отредактировал свой вопрос, потому что я не могу репостить еще 4 часа, не могли бы вы проверить мой код, если я сделал какую-то ошибку или что-то упустил - person Mitko Zafirovski; 26.03.2012
comment
@MitkoZafirovski Зачем вам делать репост? Если вопрос в основном тот же, то для этого редактирование (как и вы). - person AHungerArtist; 26.03.2012
comment
@AHungerArtist Я хотел сделать репост, потому что они попросили меня показать код для моего вопроса. Но я думаю, что редактирование тоже хорошо - person Mitko Zafirovski; 26.03.2012
comment
@MitkoZafirovski Вот что я говорю. Было бы бессмысленно делать репост, поскольку у вас уже был вопрос. - person AHungerArtist; 26.03.2012
comment
@AlexandreCouturon Я отредактировал свой пост и выяснил, как я получаю токен доступа. Кроме того, я хочу опубликовать этот пост как приложение, поэтому я использую токен доступа к приложению. - person Mitko Zafirovski; 27.03.2012