2013-02-24 9 views
9

próbuję zrobić "post" wniosek do https://graph.facebook.com/ "+ identyfikator użytkownika +"/zdjęcia? Access_token = "+ accessTokenPrzesyłanie base64 obrazu na Facebooku milimetrowym API za pośrednictwem JavaScript/PhoneGap

z 'url' paramter bycia a. dane base64 URI

mam błąd „danych: base64 .... jest interal URL, ale jest to prośba zewnętrzne”

+0

Ja też tego szukałem. Najbliższą rzeczą, jaką mogę sobie wyobrazić, jest chwilowe zapisanie obrazu na serwerze, wyświetlenie obrazu do albumu, a następnie usunięcie zdjęcia, ponieważ gdy zdjęcie znajduje się na Facebooku, obraz źródłowy nie jest już potrzebny. Nie możemy się doczekać, co inni znajdą. –

+0

Ten działał dla mnie: http://facebook.stackoverflow.com/a/16439233/1472477 –

Odpowiedz

-1
<script src='http://connect.facebook.net/en_US/all.js'></script> 
FB.init({appId: "ur ap id of fb", status: true, cookie: true}); 
FB.login(function(response) { 
     if (response.authResponse) { 
     var access_token = FB.getAuthResponse()['accessToken']; 
     FB.api('me/photos', 'post', { 
      message: 'posted by xxxx', 
      status: 'success', 
      access_token: access_token, 
      url: 'test.png' 
     }, function (response) { 

      if (!response || response.error) { 
       alert('Error occured'); 
      } else { 
       alert('Image Posted On Facebook'); 
      } 

     }); 
     } else { 

     } 
    }, {scope: 'user_photos,photo_upload,publish_stream,offline_access'}); 

     }, 
     error:function(){ 

     } 
0

znam ten ból nie jest w stanie przekazać. Jedno zdjęcie Po bezsennych nocach i dniach badań, w końcu udało mi się to zrobić z plikiem Transfer plugin

To rozwiązanie nie wymaga Uint8Array lub Blobs wsparcie;)

Pierwszy dodać wtyczki: cordova plugin add org.apache.cordova.file-transfer

Następnie użyć tego kodu (Zauważ, że używam angularjs. Nie składaj obietnic ani nie korzystaj z biblioteki takiej jak rsvp lub Q, aby spełnić twoje obietnice):

function postImage(fileURI, message) { 

    var deferred = $q.defer(); 

    var win = function (r) { 

     deferred.resolve(r); 
    } 

    var fail = function (error) { 

     deferred.reject(error); 
    } 

    var options = new FileUploadOptions(); 
    options.fileKey = "file"; 
    options.fileName = 'name_of_photo_' + Math.round((+(new Date()) + Math.random())); 
    options.mimeType = "image/jpg"; 

    var params = new Object(); 
    params.access_token = "your facebook access token ;)"; 
    params.message = message; 
    params.no_story = false; 

    options.params = params; 

    var ft = new FileTransfer(); 
    ft.upload(fileURI, "https://graph.facebook.com/v2.0/me/photos", win, fail, options); 

    return deferred.promise; 
}