Я пытаюсь оставлять комментарии на странице приложения в 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 имел те же новости.