facebook - как сообщение через ajax - PullRequest
2 голосов
/ 20 февраля 2011

Я создаю похожую на фейсбук стену (стрим) для размещения на моем сайте. Этот компонент будет читать все сообщения со стены определенной страницы и отображать их через график API. Я также хочу, чтобы пользователь мог НРАВИТЬСЯ сообщения, отображаемые на "стене".

На данный момент у меня есть скрипт, который использует график api для получения списка сообщений JSON, и у меня также есть PHP-файл, который МОЖЕТ ПОНРАВИТЬ пост, идентификатор которого передается в параметре строки запроса post_id, и это работает. Я вижу, как нравится.

Для вызова этого PHP-файла я использую jQuery ajax:

 function do_likes(post_id) {
    $.ajax({
        type: "POST",
        url:"http://www.p-art.co.il/facebook_test/action.php?post_id=" + post_id
    });

Firebug не показывает никаких ошибок, но, с другой стороны, LIKE не публикуется. Я искал несколько часов, но не могу найти правильный способ вызова файла PHP, чтобы сработал вызов FB.api.

Спасибо заранее. -Elad

Ответы [ 2 ]

0 голосов
/ 05 сентября 2011

Трудно сказать, не увидев исходный код вашего файла action.php, но я предполагаю, что он неправильно получает токен доступа пользователей из-за его вызова через AJAX.

Если вы можете опубликовать свой источник action.php где-нибудь, я смогу помочь еще

0 голосов
/ 20 февраля 2011

При HTTP POST данные обычно отправляются с входов формы с enctype , установленным в application/x-www-form-urlencoded формат.Таким образом, при использовании AJAX POST мы обычно отправляем данные также в этом формате, а не в виде параметра строки запроса, как обычно данные отправляются с запросом HTTP GET и как вы отправляете данные выше.

, еслиВы изменяете свой код на

 function do_likes(post_id) {
    $.ajax({
        type: "POST",
        url:"http://www.p-art.co.il/facebook_test/action.php",
        data : { post_id : post_id }
    });
 }

, он должен работать должным образом (я не знаком с PHP, но я предполагаю, что размещаемый вами URL ожидает данные в формате application/x-www-form-urlencoded).с помощью jQuery.ajax(), если вы установите для объекта данных пары ключ / значение, которые вы хотите отправить на сервер, jQuery позаботится о предоставлении правильного enctype для вас на основе запроса HTTPтип, который вы используете (вы можете переопределить enctype, если необходимо, но обычно это не требуется, и значения по умолчанию будут такими, какие вам нужны в большинстве случаев).

Также вы можете установитьфункция обратного вызова, которая будет вызвана после успешного завершения сообщения AJAX.Для этого добавьте свойство success к объекту, переданному в вызов * $.ajax().

...