Отправить сообщение на стене, используя JJery AJAX (сообщение) - PullRequest
1 голос
/ 01 ноября 2011

Я пытаюсь опубликовать настенное сообщение из локального настольного приложения (я не могу использовать FB JS SDK).

Вот фрагмент моего кода

var url = "https://graph.facebook.com/me/feed";
var params = "access_token=" + token + "&message=" + encodeURI(text);

 $.ajax({
           crossDomain: true,
           data: params,
           dataType: "jsonp",
           url: url,
           type: 'POST',
           success: function (data) {
                   if (callback) {
                       var isOK = (data && data.id && !data.error);
                       callback(isOK, data);
                   }
               },
           error: function (data, e1, e2) {

                   }
  });

Запрос игнорирует параметр сообщения.
Я получаю список каналов, как если бы это был запрос GET.

Я пытался установить параметры как карту, но это не помогло. Кстати - при использовании CURL (в C ++) мне удается правильно разместить данные.

Есть идеи, почему он игнорирует параметры?

Ответы [ 2 ]

0 голосов
/ 13 декабря 2011

Ниже работал нормально в Jquery 1.6.4 + jquery.mobile-1.0rc2, установив $ .mobile.allowCrossDomainPages = true;в mobileinit bind

$.ajax( {                                    
    url : "https://graph.facebook.com/me/feed",
    type : "POST",
    data : "access_token=" + your_access_token + "&message=my first wall post",
    cache : false,
    success : function(res) {
        if (!response || response.error) {
           alert("Couldn't Publish Data");
        } else {
           alert("Message successfully posted to your wall");
        }
    },
    error : function(xhr, textStatus, errorThrown) {
        alert(xhr.responseText);
    }
});
0 голосов
/ 01 ноября 2011

Я бы поместил «params» в элемент данных следующим образом:

var url = "https://graph.facebook.com/me/feed";


 $.ajax({
           crossDomain: true,
           data: { access_token: token, message: text  },
           dataType: "jsonp",
           url: url,
           type: 'POST',
           success: function (data) {
                   if (callback) {
                       var isOK = (data && data.id && !data.error);
                       callback(isOK, data);
                   }
               },
           error: function (data, e1, e2) {

                   }
  });

Пусть jQuery закодирует параметры оттуда.

...