0

ストーリーを投稿できる Android アプリに取り組んでおり、ユーザーに写真をアップロードしてもらいたいです。

アプリには「publish_actions」権限があり、「user_generated」、「fb:explicitly_shared」があります。

私のコードは次のとおりです

ByteArrayOutputStream stream = new ByteArrayOutputStream();
    if(bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream)) {
        Log.i(TAG,"Bitmap compressed into stream successfully.");
    }

    postParams.putByteArray("image", stream.toByteArray());

    postParams.putString("user_generated", "true");
    postParams.putString(OBJECT,URL);
    postParams.putString("fb:explicitly_shared", "true");

Log.i(TAG,"Executing facebook graph story request...");

    Request request = new Request(session, "me/<appnamespace>:<action>", postParams, HttpMethod.POST, callback);
    RequestAsyncTask task = new RequestAsyncTask(request);
    task.execute();

テストアカウントのタイムラインを確認するとストーリーは投稿されているのですが、画像がありません。問題は次の行にあると思います。

postParams.putByteArray("image", stream.toByteArray());

問題は、キーが「イメージ」ではないか、それがあなたのやり方ではないかのいずれかだと思います。

これを行う正しい方法は何ですか?

4

1 に答える 1

1

あなたの他の質問の私のコメントから:

me/: エンドポイントに画像をアップロードすることはできません。最初に me/staging_resources に POST する必要があります。Object API の使用方法については、このハウツーを参照してください (具体的には、画像のアップロードの手順 3)。

https://developers.facebook.com/docs/howtos/androidsdk/3.0/share-using-object-api/

グラフを開くアクションに画像を追加するには、次のようにします。

JSONObject obj = new JSONObject();
obj.put("url", <your staging uri here>);
obj.put("user_generated", true);
myAction.setImage(Arrays.asList(obj));
于 2013-07-01T18:23:24.273 に答える