Опубликовать на стене Facebook с сервера вместо клиентского приложения - PullRequest
0 голосов
/ 07 марта 2012

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

Теперь, из-за некоторых проблем с оптимизацией, мы хотим обрабатывать функциональность fb wall post приложения на стороне сервера, а не на стороне клиента. Для решения этой задачи мы отправляем все данные (в том числе и токен доступа fb) на сервер и отправляем http-запрос на Facebook через graph api. В ответ отправляет нам ошибку:

{"error": {"message": "Недопустимый токен: \" 610446057 \ ". Идентификатор уже было указано. "," type ":" OAuthException "," code ": 2500}}

Пример кода запроса http вставлен ниже:

HttpClient client = new HttpClient();
client.getParams().setParameter("http.useragent", "Test Client");

PostMethod method = new PostMethod("https://graph.facebook.com/610446057?access_token=MY_VALID_TOKEN_HERE");
method.addParameter("id", "610446057");
method.addParameter("name", "Zunair Minhas");
method.addParameter("picture", "http://profile.ak.fbcdn.net/hprofile-ak-ash2/276791_19292868552_1958181823_s.jpg");
method.addParameter("link", "http://www.google.com.pk");
method.addParameter("company_overview", "FB Wall post without fb integration. It is a simple Http Post request.");
client.executeMethod(method);

def reader = method.getResponseBodyAsString();
String data = reader.readLines().join()
method.releaseConnection();

Сервер написан Grails 2.0.1.

Я следовал примеру поста fb, представленному здесь: http://developers.facebook.com/docs/reference/api/

Подскажите, пожалуйста, что я делаю не так?

Спасибо.

Зунаир Минхас

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Все, что вам нужно сделать, это удалить строку:

method.addParameter("id", "610446057");

Вы передаете это через граф url https://graph.facebook.com/610446057


Чтобы опубликовать на стене просто сделайте

https://graph.facebook.com/me/feed?access_token=<xxx>

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

0 голосов
/ 07 марта 2012

Вы указываете идентификатор, который у вас уже есть в URL

попытаться удалить

method.addParameter("id", "610446057");
...