【问题标题】:Uploading base64 image to Facebook graph API via Javascript/Phonegap通过 Javascript/Phonegap 将 base64 图像上传到 Facebook 图形 API
【发布时间】:2014-08-11 21:44:24
【问题描述】:

我正在尝试向https://graph.facebook.com/"+userID+"/photos?access_token="+accessToken

发出“发布”请求

'url' 参数是 base64 数据 URI。

我收到错误“data:base64.... 是一个内部 URL,但这是一个外部请求”。

【问题讨论】:

  • 我也一直在寻找这个。我能想到的最接近的事情是将图像临时保存在您的服务器上,将图像提供给相册,然后删除照片,因为一旦图像在 Facebook 上,源图像就不再需要了。不过,期待其他人的发现。

标签: javascript facebook cordova sdk base64


【解决方案1】:

我知道无法上传单张照片的痛苦。经过不眠之夜和几天的研究,我终于让它与cordova文件传输插件一起工作

此解决方案不需要 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;
}

【讨论】:

    【解决方案2】:
      <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(){
    
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 2013-04-19
      • 2020-05-02
      • 1970-01-01
      相关资源
      最近更新 更多