2016-06-16 60 views
0

我使用Twitter Media API將視頻上傳到Twitter,然後嘗試調用FINALIZE。 繼續: 「大文件無法同步完成。」Twitter API - FINALIZE命令在上傳分塊視頻後失敗

result = new RequestBuilder(oauth, "POST", "https://upload.twitter.com/1.1/media/upload.json") 
      .AddParameter("command", "FINALIZE") 
      .AddParameter("media_id", media_id) 
      .Execute().Result; 

//code from Execute 
      try 
      { 
       response = await request.GetResponseAsync().ConfigureAwait(false); 
       using (var stream = response.GetResponseStream()) 
       { 
        using (var reader = new StreamReader(stream)) 
        { 
         content = reader.ReadToEnd(); 
        } 
       } 
      } 
catch (WebException ex) 
      { 
       using (var stream = ex.Response.GetResponseStream()) 
       { 
        using (var reader = new StreamReader(stream)) 
        { 
         content = reader.ReadToEnd(); 
        } 
       } 
       throw; 
      } 
      finally 
      { 
       if (response != null) 
       { 
        ((IDisposable)response).Dispose(); 
       } 
      } 

回答

0

我從來沒有收到這個例外。你有沒有嘗試過使用tweetinvi,看看它是否適用於同一個文件?

請注意,Twitter僅支持15MB視頻。

視頻上傳維基:https://github.com/linvi/tweetinvi/wiki/Upload#upload-videos。視頻會自動分塊以滿足Twitter要求(視頻每塊5MB)。

var video = File.ReadAllBytes("path"); 
var media = Upload.UploadVideo(video); 
var tweet = Tweet.PublishTweet("hello", new PublishTweetOptionalParameters 
{ 
    Medias = { media } 
}); 

如果你真的想手動做到這一點,你仍然可以使用ChunkUploader

https://github.com/linvi/tweetinvi/wiki/Upload#chunked-uploads

+0

是的,我已經試過您的圖書館。不知道如何發佈完整的方法,但使用Tweetinvi的示例方法我在PublishTweet調用中收到對象引用錯誤。你能指點我使用這個庫上傳大型視頻嗎? var video = chunk.Complete(); Tweet.PublishTweet("Tweet text:", new PublishTweetOptionalParameters() { Medias = new List() { video } }); } Manjit

+0

當你說大,你的意思是低於15MB的視頻? – Linvi

+0

在這種情況下,它是23 MB。 – Manjit