1

Android アプリケーションが 1 つあり、アプリから 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