C# Facebook AdVideo上载视频文件块出现异常

C# Facebook AdVideo上载视频文件块出现异常,c#,facebook-graph-api,C#,Facebook Graph Api,我正在使用Facebook Graph API向Facebook上传广告视频,但该API不起作用。调用中缺少一些字节 我的问题是视频文件块,因为我们发送的块文件开始和结束偏移量不同 第一次迭代 起始偏移量为0 末端偏移量为1048576 在响应中,我们得到了第二次迭代的偏移量 起始偏移量为1048578 末端偏移量为2048578 这里显然缺少一个字节。在最后一次迭代中,代码被破坏了。给出一些一般性的例外 “您的视频上载在完成之前超时。这可能是因为网络连接速度慢或您尝试上载的视频太大。请重试。”

我正在使用Facebook Graph API向Facebook上传广告视频,但该API不起作用。调用中缺少一些字节

我的问题是视频文件块,因为我们发送的块文件开始和结束偏移量不同

第一次迭代 起始偏移量为0 末端偏移量为1048576

在响应中,我们得到了第二次迭代的偏移量

起始偏移量为1048578 末端偏移量为2048578

这里显然缺少一个字节。在最后一次迭代中,代码被破坏了。给出一些一般性的例外

“您的视频上载在完成之前超时。这可能是因为网络连接速度慢或您尝试上载的视频太大。请重试。”

var fb=GetFB()

提前感谢您的帮助。

facebook SDK bug!!! 修复fbsdk代码: 电话:541

indexOfDisposableStreams.Add(streams.Count);
streams.Add(new MemoryStream(fileData));
indexOfDisposableStreams.Add(streams.Count);
streams.Add(new MemoryStream(Encoding.UTF8.GetBytes(MultiPartNewLine)));// facebook server can't process this. delete this line !
请重建facebook sdk~

indexOfDisposableStreams.Add(streams.Count);
streams.Add(new MemoryStream(fileData));
indexOfDisposableStreams.Add(streams.Count);
streams.Add(new MemoryStream(Encoding.UTF8.GetBytes(MultiPartNewLine)));// facebook server can't process this. delete this line !
--------------示例代码:

 using (FileStream fs = new FileStream("E:\\cnp.mp4",
                           FileMode.Open,
                           FileAccess.Read))
        {


            dynamic parameters = new System.Dynamic.ExpandoObject();
            parameters.upload_phase = "start";
            parameters.file_size = fs.Length;
            var fileSize = (int)fs.Length;
            Console.WriteLine("file_size: {0}", fileSize);


            dynamic result = fb.Post("/" + FBAccountID + "/advideos", parameters);

            string upload_session_id = (string)result["upload_session_id"];

            Console.WriteLine("");
            Console.WriteLine("upload_session_id: {0}", (string)result["upload_session_id"]);
            Console.WriteLine("Video Id: {0}", (string)result["video_id"]);
            Console.WriteLine("");
            Console.WriteLine("start_offset: {0}", (string)result["start_offset"]);
            Console.WriteLine("end_offset: {0}", (string)result["end_offset"]);

            int startOffset = int.Parse((string)result["start_offset"]);
            int endOffset = int.Parse((string)result["end_offset"]);

            int length = endOffset - startOffset;

            int i = 1;
            int totalBytesRead = 0;
            BinaryReader br = new BinaryReader(fs);
            while (startOffset < endOffset)
            {                   
                 byte[] buff = new byte[length];
                 fs.Read(buff, 0, length);

                totalBytesRead += buff.Length;                

                Console.WriteLine("buff length: {0}", buff.Length);
                Console.WriteLine("Total Bytes Read: {0}", totalBytesRead);
                dynamic parameters1 = new System.Dynamic.ExpandoObject();
                parameters1.upload_phase = "transfer";
                parameters1.upload_session_id = upload_session_id;
                parameters1.start_offset = startOffset;
                parameters1.video_file_chunk = new FacebookMediaObject { ContentType = "video/mp4", FileName = "cnp " + i + ".mp4" }.SetValue(buff);
                i++;
                dynamic result1 = fb.Post("/" + FBAccountID + "/advideos", parameters1);

                Console.WriteLine("");
                Console.WriteLine("start_offset: {0}", (string)result1["start_offset"]);
                Console.WriteLine("end_offset: {0}", (string)result1["end_offset"]);
                startOffset = int.Parse((string)result1["start_offset"]);

                endOffset = int.Parse((string)result1["end_offset"]);
                length = endOffset - startOffset;
            }

            dynamic parameters2 = new System.Dynamic.ExpandoObject();
            parameters2.upload_phase = "finish";
            parameters2.upload_session_id = upload_session_id;
            parameters2.title = "Video title";
            dynamic result2 = fb.Post("/" + FBAccountID + "/advideos", parameters2);
            Console.WriteLine("success: {0}", result2["success"].ToString());
使用(FileStream fs=newfilestream(“E:\\cnp.mp4”,
FileMode.Open,
FileAccess.Read)
{
动态参数=new System.dynamic.ExpandoObject();
parameters.upload_phase=“开始”;
parameters.file_size=fs.Length;
var fileSize=(int)fs.Length;
WriteLine(“文件大小:{0}”,文件大小);
动态结果=fb.Post(“/”+FBAccountID+“/advideos”,参数);
string upload_session_id=(string)结果[“upload_session_id”];
控制台。写线(“”);
WriteLine(“upload_session_id:{0}”,(string)result[“upload_session_id]”);
WriteLine(“视频Id:{0}”,(字符串)结果[“视频Id”];
控制台。写线(“”);
WriteLine(“起始偏移量:{0}”,(字符串)结果[“起始偏移量”];
WriteLine(“end_offset:{0}”,(string)result[“end_offset”]);
int startOffset=int.Parse((字符串)结果[“start_offset”]);
int endOffset=int.Parse((字符串)结果[“end_offset”]);
int长度=内偏移-起始偏移;
int i=1;
int totalBytesRead=0;
BinaryReader br=新的BinaryReader(fs);
while(startOffset
这有没有被修复过?