0

我已经尝试了数千种方法,但都没有奏效。每次帖子都不会出现。我之前设法发布过文字,但图像永远无法正常工作......

     try {
            String response = facebook.request("me");
            Bundle parameters = new Bundle();

            String DIRECTORY_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/img/img.jpg";
            Bitmap bitmap = BitmapFactory.decodeFile(DIRECTORY_PATH);
            byte[] data = null;
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            data = baos.toByteArray();
            parameters.putString("message", "picture caption");
            parameters.putByteArray("source", data); //I try "picture" too

            String pageid = "152390368241461";
            response = facebook.request(pageid + "/photos", parameters, 
                    "POST");
            Log.d("Tests", "got response: " + response);
            if (response == null || response.equals("") || 
                    response.equals("false")) {
               Log.v("Error", "Blank response");
           }
            showToast(getResources().getString(R.string.sucessharefc));
     } catch(Exception e) {
         e.printStackTrace();
     }
4

3 回答 3

1

根据Graph API Page 文档,您需要multipart/form-data使用具有权限 的令牌publish_stream进行POST。manage_pages

Facebook Android SDK request()文档说明了request()您使用的形式:

请注意,此辅助函数尚不支持二进制数据参数(例如图片)。

因此,您必须为此使用 HTTP 客户端库。

于 2013-01-28T08:03:27.210 回答
-1

您正在使用 Facebook SDK 中已弃用的 API。在此处下载最新版本,并查看入门指南和各种教程。

要上传照片,您应该使用Request类,特别是Request.newUploadPhotoRequest方法。

于 2013-01-28T18:02:47.280 回答
-1
Bitmap imaBitmap= BitmapFactory.decodeResource(this.getResources(),R.drawable.androidface);
byte[] data = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
imaBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();
Bundle params = new Bundle();
params.putString("message"," Facebook App Testing");
params.putByteArray("picture", data);
mAsyncRunner.request("1741449412743375/photos", params, "POST", new SampleUploadListener(), null);
于 2016-01-05T20:14:59.857 回答