загрузить фото на фейсбук используя javascript - PullRequest
1 голос
/ 28 марта 2011

Я пытаюсь загрузить фотографию на Facebook, используя JavaScript.Я был в состоянии сделать обновление статуса, используя JavaScript, но все еще боролся с тем, как загрузить фотографию.Может кто-нибудь, пожалуйста, скажите мне, как закодировать это в Javascript?

Ответы [ 3 ]

3 голосов
/ 27 апреля 2013

Правильный код будет:

var params = {};
params.url = 'https://myserver.com/myimage.jpg';

FB.api('/me/photos', 'post', params, function(response) {
    if (!response || response.error) {
        //error
    } else {
        picid = response.id;
    }
}); 

Имейте в виду, что фотография должна быть на вашем сервере, поэтому вам нужен серверный скрипт для загрузки. параметр "url" - это абсолютный URL вашего загруженного файла изображения. Дополнительная информация: https://developers.facebook.com/docs/reference/api/user/ (см. Фото / Создать)

Имейте в виду, что параметр "message" должен быть на 100% создан пользователем в соответствии с условиями Facebook. Вы также не можете публиковать на стене друга вошедшего в систему пользователя, эта функциональность устарела и больше не работает.

0 голосов
/ 08 мая 2013

Надеюсь, это будет полезно.Делая загрузку фотографий в FB только с помощью JavaScript, вы можете использовать следующий метод.Здесь необходимо указать imageData (формат изображения base64) и тип mime.

try{
        blob = dataURItoBlob(imageData,mimeType);
}catch(e){console.log(e);}
var fd = new FormData();
fd.append("access_token",accessToken);
fd.append("source", blob);fd.append("message","Kiss");
try{
   $.ajax({
        url:"https://graph.facebook.com/" + <<userID received on getting user details>> + "/photos?access_token=" + <<user accessToken>>,
        type:"POST"
        data:fd,
        processData:false,
        contentType:false,
        cache:false,
        success:function(data){
            console.log("success " + data);
        },
        error:function(shr,status,data){
            console.log("error " + data + " Status " + shr.status);
        },
        complete:function(){
            console.log("Ajax Complete");
        }
    });

}catch(e){console.log(e);}

function dataURItoBlob(dataURI,mime) {
    // convert base64 to raw binary data held in a string
    // doesn't handle URLEncoded DataURIs

    var byteString = window.atob(dataURI);

    // separate out the mime component


    // write the bytes of the string to an ArrayBuffer
    //var ab = new ArrayBuffer(byteString.length);
    var ia = new Uint8Array(byteString.length);
    for (var i = 0; i < byteString.length; i++) {
        ia[i] = byteString.charCodeAt(i);
    }

    // write the ArrayBuffer to a blob, and you're done
    var blob = new Blob([ia], { type: mime });

    return blob;
}
0 голосов
/ 27 апреля 2013

Вот пример кода:

var imgURL = 'URL de la photo a uploader';

FB.api('/ALBUM_ID/photos', 'post', {
    message: ' Ma photo',
    url: imgURL,
}, function (response) { 

});
...