0

有人可以帮我吗?我想在 Facebook 上发帖并从 sdcard 中放一张图片。如果我使用 URL - 一切正常。但是我应该怎么做才能从 sdcard 上传图片呢?也许我需要先像照片一样在 Facebook 上下载它,然后再获取它的网址?但是我怎样才能获得最近上传的照片的网址呢?

        Bundle postParams = new Bundle();
        postParams.putString("name", title);
        postParams
                .putString("caption", caption);
        postParams.putString("description", description);
        postParams
                .putString("link",
                        "https://");
        postParams
                .putString(
                        "picture",
                        "https://");


        Request.Callback callback = new Request.Callback() {
            public void onCompleted(Response response) {
                if (response.getError() == null) {
                    JSONObject graphResponse = response.getGraphObject()
                            .getInnerJSONObject();
                    String postId = null;
                    try {
                        postId = graphResponse.getString("id");
                    } catch (JSONException e) {
                        Log.i("Facebook Error",
                                "JSON error " + e.getMessage());
                    }
                    FacebookRequestError error = response.getError();
                    if (error != null) {
                    } else {
                    }
                }
            }
        };

        Request request = new Request(session, "me/feed", postParams,
                HttpMethod.POST, callback);

        RequestAsyncTask task = new RequestAsyncTask(request);
        task.execute();
4

2 回答 2

0

试试这段代码:

byte[] data = null;

ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmpImageGallery.compress(CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();

Bundle postImgGallery = new Bundle();

// ADD THE PHOTO DATA TO THE BUNDLE
postImgGallery.putByteArray("photo", data);

注意:bmpImageGallery上面代码中的 是一个位图的实例。该实例保存从图库应用程序或相机应用程序中选择的图像。看到问题只是关于上传图像,您自然必须调整一些事情。但是,如果您在选择图像方面确实需要帮助,这可能会有所帮助:如何从图库(SD 卡)中为我的应用选择图像?

于 2013-01-26T13:13:18.340 回答
0

尝试使用此代码将图像放入要发布的参数中:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] data = baos.toByteArray();

Bundle params = new Bundle();
params.putString("message", message);
params.putByteArray("picture", data);
params.putString("method", "photos.upload");

AsyncFacebookRunner runner = new AsyncFacebookRunner(facebookHandler.facebook);
runner.request(null, params, "POST", new RequestListener() {
public void onMalformedURLException(MalformedURLException e, Object state) {}
public void onIOException(IOException e, Object state) {    }
public void onFileNotFoundException(FileNotFoundException e, Object state) {}
public void onFacebookError(FacebookError e, Object state) {    }
public void onComplete(String response, Object state) {
returnHandler().sendEmptyMessage(0);
}
}, null);

在哪里 bmp 是 a Bitmap,从你喜欢的任何地方获取它。

于 2013-01-26T13:00:21.047 回答