Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook sdk的RequestAsyncTask无法在android中发布视频_Android_Facebook_Facebook Graph Api_Facebook Sdk 3.1 - Fatal编程技术网

Facebook sdk的RequestAsyncTask无法在android中发布视频

Facebook sdk的RequestAsyncTask无法在android中发布视频,android,facebook,facebook-graph-api,facebook-sdk-3.1,Android,Facebook,Facebook Graph Api,Facebook Sdk 3.1,{HttpStatus:500,错误代码:352,错误类型:FacebookApiException, errorMessage:抱歉,您选择的视频文件的格式不正确 我们不支持 我不知道我做错了什么,但每次我都犯了这个错误。是否有其他方法将视频发布到facebook墙。 我知道如何通过电子邮件发送视频 newUploadVideoRequest方法,但就我而言,我不想下载视频并将其保存到sd卡,然后发布到facebook。 还有另外一种方法,我可以调用graph api url并将视频发布到fa

{HttpStatus:500,错误代码:352,错误类型:FacebookApiException, errorMessage:抱歉,您选择的视频文件的格式不正确 我们不支持

我不知道我做错了什么,但每次我都犯了这个错误。是否有其他方法将视频发布到facebook墙。 我知道如何通过电子邮件发送视频 newUploadVideoRequest方法,但就我而言,我不想下载视频并将其保存到sd卡,然后发布到facebook。 还有另外一种方法,我可以调用graph api url并将视频发布到facebook的墙上,但是 是否有其他方法可以让我直接将视频发布到facebook墙,我几乎引用了我刚刚更改的每个链接

请求参数putByteArray(“视频”,数据)requestParams.putByteArray(“video.3gp”,数据)

它上传成功,你可以试试。mp4也很奇怪,但是没有关于应该传递什么参数的有用文档。希望这是有帮助的

{
    Request request = null;
            RequestAsyncTask task = null ;

        Bundle requestParams    requestParams=new Bundle();
                        byte[] data = downloadUrl(new URL("urltodownload"));
                        requestParams.putByteArray("video", data);
                        requestParams.putString("title", "Video post");
                        requestParams.putString("description", " #SomeTag");
                        request = new Request(Session.getActiveSession(),"me/videos" , requestParams,
                                HttpMethod.POST,new Request.Callback() {
                            @Override
                            public void onCompleted(Response response) {
                                //appLink=null;
                                if (response.getError() == null) {
                                    Logs.e(DEBUG_FACEBOOK_PUBLISH, "publish success");
                                    if (uploadListener != null) {
                                        uploadListener.onSuccess(null);
                                    }
                                } else {
                                    Logs.e(DEBUG_FACEBOOK_PUBLISH, "publish error: "
                                            + response.getError().getErrorMessage());
                                    Logs.e(DEBUG_FACEBOOK_PUBLISH, "publish error: "
                                            + response.getError().toString());
                                    if (uploadListener != null) {
                                        uploadListener
                                        .onError("Facebook can't publish your content");
                                    }
                                }
                            }
                        });
                        task = new RequestAsyncTask(request);
                        task.execute(); 
                }   

private static byte[] downloadUrl(URL toDownload) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

        try {
            byte[] chunk = new byte[4096];
            int bytesRead;
            InputStream stream = toDownload.openStream();

            while ((bytesRead = stream.read(chunk)) > 0) {
                outputStream.write(chunk, 0, bytesRead);
            }

        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }

        return outputStream.toByteArray();
    }