【问题标题】:How to upload image to facebook from sdcard如何将图片从 SD 卡上传到 Facebook
【发布时间】:2023-03-21 11:20:02
【问题描述】:

我已经使用 Facebook SDK 完成了文本共享。我被困在从 SD 卡上传图像。在将图像解析为 FB SDK 之前,首先我将图像转换为位图,然后我应该与 Facebook 共享。但是这个逻辑是行不通的。它从不从 SD 卡上传图像。谁能指导我如何从 SD 卡上传图像?提前致谢。

Bitmap bi = BitmapFactory.decodeStream(fis);
Bitmap bi =BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() +"/Android/test.jpg", options);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);

【问题讨论】:

标签: android facebook


【解决方案1】:

试试下面的代码,并检查你的位图不应该为空..

Bundle bundle = new Bundle();
bundle.putString("message", "post image.." );

byte[] data = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
<<your bitmap>>.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();

bundle.putString(Facebook.TOKEN, facebook.getAccessToken());
bundle.putString("method", "photos.upload");
bundle.putByteArray("picture", data);
bundle.putString("message", "post image.." );

mAsyncRunner.request(null,bundle,"POST",new RequestListener() {
    @Override
    public void onMalformedURLException(MalformedURLException e, Object state) {
      Log.d("request RequestListener", "debug onMalformedURLException");
    }
    @Override
    public void onIOException(IOException e, Object state) {
  Log.d("request RequestListener", "debug onIOException");
    }
    @Override
    public void onFileNotFoundException(FileNotFoundException e, Object state) {
  Log.d("request RequestListener", "debug onFileNotFoundException");
    }
    @Override
    public void onFacebookError(FacebookError e, Object state) {
  Log.d("request RequestListener", "debug onFacebookError");
    }
    @Override
    public void onComplete(String response, Object state) {
   Log.d("request RequestListener", "debug onComplete");
    }
}, null);

【讨论】:

    【解决方案2】:

    试试这个。

     private Facebook facebook = new Facebook("319*********897");
     byte[] byteArray;
    

    从 SD 卡中获取图像并转换为 byteArray。

    然后使用此功能在 facebook 上分享图像。

     public void shareOnFacebook() {
        // mDuckHuntView.pause();
    
        facebook.authorize(this, new String[] { "publish_stream",
                "user_photos", "publish_checkins", "publish_actions" },
                new DialogListener() {
                    public void onComplete(Bundle values) {
                        try {
    
                            Bundle bundle = new Bundle();
                            bundle.putString(
                                    "name",
                                    "text here");
                            bundle.putByteArray("file", byteArray);
                            bundle.putByteArray(Facebook.TOKEN, values
                                    .getString(Facebook.TOKEN).getBytes());
                            String response = facebook.request("me/photos",
                                    bundle, "POST");
    
                            Log.d("UPDATE RESPONSE", "" + response);
                            JSONObject json = Util.parseJson(response);
                            if (!json.isNull("id")) {
                                // err("Facebook Image link submitted.");
    
                            } else {
                                // err("Facebook Error: " + response);
                            }
    
                        } catch (Exception e) {
    
    
                        } catch (FacebookError e) {
    
                        }
                    }
    
                    public void onFacebookError(FacebookError e) {
    
                    }
    
                    public void onError(DialogError e) {
    
                    }
    
                    public void onCancel() {
    
                    }
    
                });
    }
    

    为此,您需要使用 facebook sdk 包。

    【讨论】:

    • 谢谢它工作正常。现在我可以从 sdcard 共享图像了。
    • 一个对话框打开,登录后图像没有发布。当我调试它时。光标不会完成。你可以在fb上分享登录和分享图片的完整代码吗?或任何解决我的问题的提示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多