我正在尝试发送带有视频的推文,但在"等待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
答案 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文件;)