0

我正在使用Facebook Javascript SDK將照片上傳到用戶的時間軸。這是我的電話:Facebook Graph API - 成功時出錯?

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調用回,然而狀態文本是「OK」,並且圖像被成功上傳到我的時間表。我只是想知道我在這裏錯過了什麼 - 爲什麼錯誤被調用?

+1

而不是你的錯誤功能上面,如果你做到以下幾點:'錯誤:函數(xhr,ajaxOptions,thrownError)alert(「Error:」+ xhr.status); alert(thrownError); }顯示什麼錯誤? – mccannf

+0

thrownError =「SyntaxError:意外的令牌:」 和xhr.status = 200 –

回答

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設置您的令牌等

+0

我試過使用FB API,它也不起作用。它甚至不會張貼照片。我會更新我的問題,以保持我使用的API調用 –

+0

Nevermind man。看起來我的.api調用不起作用,因爲我將數據定義爲數組而不是對象。感謝讓我再看一遍! –