我正在尝试向https://graph.facebook.com/ "+userID+"/photos?access_token="+accessToken " 发出“发布”请求
'url' 参数是 base64 数据 URI。
我收到错误“data:base64 .... is an interal URL but this is an external request”。
我正在尝试向https://graph.facebook.com/ "+userID+"/photos?access_token="+accessToken " 发出“发布”请求
'url' 参数是 base64 数据 URI。
我收到错误“data:base64 .... is an interal URL but this is an external request”。
我知道无法上传单张照片的痛苦。经过不眠之夜和几天的研究,我终于让它与科尔多瓦文件传输插件一起工作
此解决方案不需要 Uint8Array 或 Blob 支持;)
首先添加插件:cordova plugin add org.apache.cordova.file-transfer
然后,使用此代码(请注意,我使用的是 angular.js。不要使用承诺或使用 rsvp 或 Q 之类的库来做出承诺):
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;
}
  <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(){
        }