0

誰か助けてくれませんか?Facebook に投稿して、SD カードから画像を貼り付けたいと思います。URL を使用する場合 - すべて問題ありません。しかし、SDカードから写真をアップロードするにはどうすればよいですか? 多分私は最初にFacebookで写真のようにダウンロードしてからURLを取得する必要がありますか? しかし、最近アップロードされた写真のURLを取得するにはどうすればよいですか?

        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

このコードを試して、投稿するパラメーターに画像を入れてください。

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 が である場合は、Bitmap好きな場所から入手してください。

于 2013-01-26T13:00:21.047 に答える
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上記のコードの は Bitmap のインスタンスです。インスタンスは、Gallery アプリケーションまたは Camera アプリケーションから選択された Image を保持します。質問が画像のアップロードのみに関するものであることを考えると、当然、いくつかのことを調整する必要があります。ただし、画像の選択についてサポートが必要な場合は、これが役立つ場合があります:アプリのギャラリー (SD カード) から画像を選択する方法は?

于 2013-01-26T13:13:18.340 に答える