我在Windows Phone项目中使用TweetSharp,无论我做什么,我都不能用媒体发布推文。
我收到例外195:参数缺失或无效。
我读到通常这可能是无效数据的原因,比如我提供的流无效。
我尝试过其他方式,但没有任何作用,我得到同样的例外......
共享代码,简化如下:
MediaLibrary library = new MediaLibrary();
var picture = library.Pictures[0];
var options = new SendTweetWithMediaOptions
{
Images = new Dictionary<string, Stream> { { picture.Name, picture.GetImage() } },
Status = TweetTextBox.Text,
};
AutentificateTwitterService().SendTweetWithMedia(options, (status, response) =>
_dispatcher.BeginInvoke(() =>
{
DonePosting();
if (response.StatusCode == HttpStatusCode.OK)
{
_lastPostId = status.Id;
}
else
{
MessageBox.Show(String.Format(
"There was an error sending image to Twitter{0}{1}",
Environment.NewLine,
response.Error));
}
}));
我尝试与linqtotwitter共享并且工作但是TweetSharp更适合我的项目。
答案 0 :(得分:2)
最后一段时间后我发现了这个问题,我确信还有其他更多WP和SendTweetWithMediaOptions相关的问题。
问题是,如果你现在的方式深入了解SendTweetWithMedia,你将会进入调用WithHammock的TwitterService.cs,只是图像不会作为参数传递,所以它们会在那里迷路:)
我确实修复了这个传递参数并添加
private void WithHammock<T>(WebMethod method, Action<T, TwitterResponse> action, string path, IDictionary<string, Stream> files, params object[] segments) where T : class
{
var url = ResolveUrlSegments(path, segments.ToList());
var request = PrepareHammockQuery(url);
request.Method = method;
request.QueryHandling = QueryHandling.AppendToParameters;
foreach (var file in files)
{
request.AddFile("media[]", file.Key, file.Value);
}
WithHammockImpl(request, action);
}
我会试着看看我是否可以拉这个以便其他人都可以解决这个问题。
希望这有帮助。