API Graph Facebook - ошибка при успехе?
Я использую 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 имеет значение "ОК", и изображение успешно загружается на мою временную шкалу. Мне просто интересно, что мне здесь не хватает - почему вызывается ошибка?
1 ответ
Решение
Вы должны использовать FB.api для загрузки изображений, а не ajax POST по причинам CORS.
Итак, ваш код выше будет выглядеть так:
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
настроить свои токены и т. д.