使用视频发送推文(创建状态时出错。)

时间:2014-12-15 20:45:21

标签: c# twitter linq-to-twitter

我正在尝试发送带有视频的推文,但在"等待twitterCtx.TweetWithMediaAsync"行

  

创建状态时出错。

        if (Request.Params["VideoId"] != "")
        {
            AspNetAuthorizer auth = (AspNetAuthorizer)Session["TW"];

            var twitterCtx = new TwitterContext(auth);

            string status = "Testing TweetWithMedia #Linq2Twitter £ " + DateTime.Now.ToString(CultureInfo.InvariantCulture);
            const bool PossiblySensitive = false;
            const decimal Latitude = TwitterContext.NoCoordinate;
            const decimal Longitude = TwitterContext.NoCoordinate;
            const bool DisplayCoordinates = false;
            const string PlaceID = null;
            string ReplaceThisWithYourImageLocation = @"c:\foo\foo\" + Request.Params["VideoId"] + ".mp4";

            byte[] imageBytes = File.ReadAllBytes(ReplaceThisWithYourImageLocation);

            Status tweet = await twitterCtx.TweetWithMediaAsync(
                status, PossiblySensitive, Latitude, Longitude,
                PlaceID, DisplayCoordinates, imageBytes);

        }

视频大小~3MB

3 个答案:

答案 0 :(得分:2)

Twitter API仅支持上传图片。此外,不推荐使用 TweetWithMediaAsync (= Twitter API statuses \ update_with_media 端点),并将其替换为 UploadMediaAsync (= Twitter API media \ upload < / em>端点)。

您可以下载LINQ to Twitter source code进行演示并阅读我的博文Uploading Multiple Images in Parallel with Async and LINQ to Twitter,了解详情。

<强>更新

请参阅@Jagadeesh Govindaraj答案,因为视频上传是一项新功能,现已推出。

答案 1 :(得分:1)

现在可以在Twitter上传视频

priavte async Task UploadVideoAsync(TwitterContext twitterCtx)
{
                var additionalOwners = new List<ulong> { 3265644348, 15411837 };
                string status =
                    "Testing video upload tweet #Linq2Twitter £ " +
                    DateTime.Now.ToString(CultureInfo.InvariantCulture);

                var media = await twitterCtx.UploadMediaAsync(
                    File.ReadAllBytes(@"..\..\images\SampleVideo.mp4"), "video/mp4");

                Status tweet = await twitterCtx.TweetAsync(status, new ulong[] { media.MediaID });

                if (tweet != null)
                    Console.WriteLine("Tweet sent: " + tweet.Text);
}

**注意:**来自LinqtoTwitter

中的原始样本的代码

答案 2 :(得分:0)

现在正在支持。 但是我无法用UploadMediaAsync成功:)第二个参数不是mime类型,它是取消令牌,所以twitter无法识别我的mp4文件;)