Android 图片故事图片上传

Android 图片故事图片上传,android,facebook,facebook-opengraph,Android,Facebook,Facebook Opengraph,我正在开发一个Android应用程序,它可以让你发布一个故事,我希望用户上传一张照片 该应用程序具有“发布动作”权限,并具有“用户生成”、“fb:显式共享” 我的代码如下 ByteArrayOutputStream stream = new ByteArrayOutputStream(); if(bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream)) { Log.i(TAG,"Bitmap compressed i

我正在开发一个Android应用程序,它可以让你发布一个故事,我希望用户上传一张照片

该应用程序具有“发布动作”权限,并具有“用户生成”、“fb:显式共享”

我的代码如下

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();
我认为问题在于,关键不是“形象”,也不是你怎么做的


做这件事的正确方法是什么?

根据我在你的另一个问题中的评论:

无法将图像上载到me/:端点。您需要先将其发布给我/您的资源。请参阅使用对象API的本操作指南(特别是图像上载的步骤3)

要将图像添加到“打开图形”操作,请执行以下操作:

JSONObject obj = new JSONObject();
obj.put("url", <your staging uri here>);
obj.put("user_generated", true);
myAction.setImage(Arrays.asList(obj));
JSONObject obj=新的JSONObject();
对象放置(“url”);
obj.put(“用户生成”,true);
setImage(Arrays.asList(obj));

通过添加“/me/stager\u resources”请求调用,我成功地解决了问题。现在我面临的问题是,我必须把“user_generated”放进去,但它似乎应该以某种方式链接到“image”参数。我该怎么做?更新了答案,包括代码示例。请注意,可能有一些小语法错误,因为我没有编译它。如果我使用
params.putString(“image”,obj.toString())
而不是将其设置为操作,它会工作吗?非常感谢,它工作了。我已经做了5天了。
JSONObject obj = new JSONObject();
obj.put("url", <your staging uri here>);
obj.put("user_generated", true);
myAction.setImage(Arrays.asList(obj));