1

我有一个 android 应用程序,我需要将视频从我的应用程序上传到 facebook 粉丝页面。

我成功发布图片但无法上传视频。它总是给出错误响应,例如: {Response: responseCode: 400, graphObject: null, error: {HttpStatus: 400, errorCode: 352, errorType: OAuthException, errorMessage: (#352) 抱歉,您选择的视频文件格式我们不支持。}, isFromCache:false}

我曾尝试以不同的格式上传,如 3gp、mp4 等,但没有运气!

我做了什么来上传图片

             Bitmap photo = BitmapFactory.decodeResource(getResources(),R.drawable.in); 

            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byte[] byteArray = stream.toByteArray();

            final Session sessionfb = Session.getActiveSession();
            List<String> permissions = sessionfb.getPermissions();
            if (!permissions.contains("publish_actions")) {

                Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(
                        MainActivity.this, Arrays.asList("publish_actions"))
                        ;
                sessionfb.requestNewPublishPermissions(newPermissionsRequest);

            }


                Bundle parameters = new Bundle();


              parameters.putByteArray("source", byteArray);


                new Request(sessionfb, "me/photos", parameters, HttpMethod.POST,
                        new Request.Callback() {
                            public void onCompleted(Response response) {
                                progressDialog.dismiss();
                                Log.e("facebook post response",
                                        response.toString());
                            }
                        }).executeAsync();

此代码非常适合上传图像。

我为上传视频做了什么

            Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.testfile);
            InputStream iStream = getContentResolver().openInputStream(uri);
            byte[] inputData = getBytes(iStream);
            final Session sessionfb = Session.getActiveSession();

            List<String> permissions = sessionfb.getPermissions();
            if (!permissions.contains("publish_actions")) {
                Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(
                        MainActivity.this, Arrays.asList("publish_actions"));
                sessionfb.requestNewPublishPermissions(newPermissionsRequest);
            }
                Bundle parameters = new Bundle();
                parameters.putByteArray("source", inputData);
                new Request(sessionfb, "me/videos", parameters, HttpMethod.POST,
                        new Request.Callback() {
                            public void onCompleted(Response response) {
                                progressDialog.dismiss();
                                Log.e("facebook post response",
                                        response.toString());
                            }
                        }).executeAsync();

我错过了什么吗?

它总是说“对不起,您选择的视频文件的格式我们不支持。”

4

0 回答 0