Я работаю над проектом расширения chrome, и я пытаюсь загрузить фотографию на альбом facebook, но он всегда возвращает следующий ответ, независимо от того, какое изображение я пытаюсь загрузить.javascript- facebook uploading photo
{
"error": {
"message": "This message contains content that has been blocked by our security systems.",
"type": "OAuthException",
"code": 368
}
}
Вот мой код:
var canvas = document.createElement('CANVAS');
\t var ctx = canvas.getContext('2d');
\t var img = new Image;
\t img.crossOrigin = 'Anonymous';
\t img.onload = function(){
\t \t canvas.height = img.height;
\t \t canvas.width = img.width;
\t \t ctx.drawImage(img,0,0);
\t \t var dataURL = canvas.toDataURL('image/png');
\t \t blob = dataURItoBlob(dataURL);
\t \t goon(blob);
\t \t canvas = null;
\t };
\t img.src = "image url";
function dataURItoBlob(dataURI) {
var byteString = atob(dataURI.split(',')[1]);
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ab], { type: 'image/png' });
}
function goon(kkv){
\t var formdata= new FormData();
formdata.append("access_token", "Acces token");
formdata.append("message", "test message");
formdata.append("source", kkv);
formdata.append("privacy", "{'value':'EVERYONE'}");
try {
$.ajax({
url: 'https://graph.facebook.com/me/photos',
type: "POST",
data: formdata,
processData: false,
contentType: false,
cache: false,
error: function (shr, status, data) {
console.log("error " + data + " Status " + shr.status);
},
success: function (msg) {
//successful
}
});
} catch (e) {
console.log(e);
}
}
Я использую facebook график апи v2.3, чтобы получить маркер доступа (с расширенными правами)
Я попытался использовать параметр url insted источника, но он дал мне тот же ответ
formdata.append("url", 'image url');
Есть ли способ сделать это без токена доступа, я хочу использовать его только для своей учетной записи facebook на своем компьютере. Если нет, как я могу избавиться от этой ошибки?
Поскольку вы сказали, что речь идет о частоте, я пробовал с новой учетной записью facebook на другом компьютере. Я получил тот же ответ. Я не использую приложение, я пытаюсь использовать код на консоли хром. – user3870671
Хорошо, может быть, проблема в том, что вы получите команду. Параметр для pic url - это «изображение». Вам также необходимо использовать токен с установленными правами и использовать край подачи для публикации. Можете ли вы ответить с помощью команды HTTP POST, которую передает ваш код? Также см. Страницу ref FB для списка параметров: https://developers.facebook.com/docs/graph-api/reference/v2.3/post – tekNorah
Я использую точно такой же код в своем первом сообщении. Он работает для фида (параметр изображения), но я хочу загрузить фотографию в альбом, не отправляющий на стену. Я уверен, что у меня есть правильное разрешение (publish_actions). Итак, я думаю, что это правильная страница ref: https: // developers.facebook.com/docs/graph-api/reference/v2.3/photo – user3870671