如何在TweetinviAPI 5.0.4的C#代码中为推文添加媒体附件
实现带媒体附件的推文发布(Tweetinvi 5.0.4 + Twitter API v2)
要实现带媒体的推文发布,你需要按照Twitter API v2的请求结构,在TweetV2PostRequest类中添加媒体相关属性,让序列化后的JSON包含media嵌套字段(内部含media_ids数组)。
1. 修改请求模型类
更新TweetV2PostRequest及新增配套类,适配Twitter的媒体附件请求格式:
using Newtonsoft.Json; using System.Collections.Generic; using System.Text; using Tweetinvi.Models; using Tweetinvi; namespace MainData.Twitter_API_v2 { public class TweetsV2Poster { private readonly ITwitterClient client; public TweetsV2Poster(ITwitterClient client) { this.client = client; } public Task<ITwitterResult> PostTweet(TweetV2PostRequest tweetParams) { return this.client.Execute.AdvanceRequestAsync( (ITwitterRequest request) => { var jsonBody = this.client.Json.Serialize(tweetParams); var content = new StringContent(jsonBody, Encoding.UTF8, "application/json"); request.Query.Url = "https://api.twitter.com/2/tweets"; request.Query.HttpMethod = HttpMethod.POST; request.Query.HttpContent = content; } ); } } public class TweetV2PostRequest { [JsonProperty("text")] public string Text { get; set; } = string.Empty; [JsonProperty("media")] public TweetMediaAttachment Media { get; set; } } public class TweetMediaAttachment { [JsonProperty("media_ids")] public List<string> MediaIds { get; set; } = new List<string>(); } }
2. 更新调用代码
上传图片后,将获取到的media.id传入请求模型的媒体ID列表中:
// 获取图片字节数组 GetItemshopImage dailyData = new GetItemshopImage(); var itemshopImg = dailyData.GetItemshopImg(); // 初始化Twitter客户端 var client = new TwitterClient( "x", "x", "x", "x" ); // 上传图片到Twitter var uploadedMedia = await client.Upload.UploadTweetImageAsync(itemshopImg); // 发布带媒体的推文 var poster = new TweetsV2Poster(client); ITwitterResult result = await poster.PostTweet( new TweetV2PostRequest { Text = "myText", Media = new TweetMediaAttachment { MediaIds = new List<string> { uploadedMedia.MediaId.ToString() } } });
核心说明
- Twitter API v2要求媒体附件通过
media.media_ids数组传递,数组元素为字符串格式的已上传媒体ID。 - 如果需要添加多张图片/媒体,只需将多个媒体ID依次加入
MediaIds列表即可。 - 确保项目已引用
Newtonsoft.JsonNuGet包,否则JsonProperty特性无法正常工作。
内容的提问来源于stack exchange,提问作者Pooki
相关产品推荐
相关产品推荐

