使用Jquery的AJAX发送墙贴(Post)

时间:2011-11-01 16:09:49

标签: facebook jquery facebook-graph-api facebook-wall

我正在尝试从本地桌面应用程序发布一条墙消息(我不能使用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) {

                   }
  });

请求会忽略消息参数 我收到一份Feed列表,因为它是GET请求。

我尝试将参数设置为地图,但没有帮助。 顺便说一句 - 当使用CURL(在C ++中)时,我设法正确地发布数据。

为什么它会忽略这些参数?

2 个答案:

答案 0 :(得分:0)

我会把" 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从那里编码参数。

答案 1 :(得分:0)

通过设置$ .mobile.allowCrossDomainPages = true,以下在Jquery 1.6.4 + jquery.mobile-1.0rc2中正常工作;在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);
    }
});