0

我正在使用 Facebook Javascript SDK 将照片上传到用户的时间轴。这是我的电话:

function post_photo_to_facebook() {
    var file_name = 'https://my-image.url.com/image.jpg';
    var access_token = FB.getAuthResponse()['accessToken'];
    $.ajax({
        type: "POST",
        url: "https://graph.facebook.com/me/photos",
        data: {
            message: "Here is my message",
            url: file_name,
            access_token: access_token,
            format: "json"
        },
        success: function(data){
            alert("POST SUCCESSFUL");
        },
        error: function(data){
            alert('Error');
            console.log(data);
        }
    });
}

在 Chrome 中,我收到来自此 AJAX 调用的错误,但 statusText 为“OK”,并且图像已成功上传到我的时间轴。我只是想知道我在这里缺少什么-为什么会调用错误?

4

1 回答 1

1

由于 CORS 的原因,您应该使用FB.api上传图像,而不是 ajax POST。

所以你上面的代码看起来像这样:

var file_name = 'https://my-image.url.com/image.jpg';

FB.api('/me/photos', 'post', {
    message:'Here is my message',
    url:file_name        
}, function(response){

    if (!response || response.error) {
        alert('Error occured');
    } else {
        alert('Post ID: ' + response.id);
    }

});

FB.init用来设置你的令牌等。

于 2012-12-17T16:53:51.727 回答