C# 无法在Windows Phone上使用TweetSharp 2.3.0使用媒体进行推文

C# 无法在Windows Phone上使用TweetSharp 2.3.0使用媒体进行推文,c#,windows-phone,tweetsharp,C#,Windows Phone,Tweetsharp,我对SendTweetWithMedia()有问题。下面是我如何实现的 var service = new TwitterService(TwitterSettings.ConsumerKey, TwitterSettings.ConsumerSecret); service.AuthenticateWith(twitterAccess.AccessToken, twitterAccess.AccessTokenSecret); string s

我对SendTweetWithMedia()有问题。下面是我如何实现的

        var service = new TwitterService(TwitterSettings.ConsumerKey, TwitterSettings.ConsumerSecret);
        service.AuthenticateWith(twitterAccess.AccessToken, twitterAccess.AccessTokenSecret);

        string status = string.IsNullOrEmpty(message) ? " " : message;
        var memoryStream = new MemoryStream();
        bitmap.SaveJpeg(memoryStream, bitmap.PixelWidth, bitmap.PixelHeight, 0, 100);
        memoryStream.Position = 0;

        var options = new SendTweetWithMediaOptions
        {
            Status = status,
            Images = new Dictionary<string, Stream> {{"picture", memoryStream}}
        };
        service.SendTweetWithMedia(options, (responseStatus, response) => Dispatcher.BeginInvoke(() =>
        {
            memoryStream.Close();
            memoryStream.Dispose();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                UiHelper.ShowToastPrompt(AppResources.TwitterToastPrompt);
            }
            else if (response.StatusCode == HttpStatusCode.Unauthorized)
            {
                NavigationService.Navigate(new Uri("/TwitterLoginPage.xaml", UriKind.Relative));
            }
            else
            {
                MessageBox.Show(response.StatusDescription, AppResources.ErrorMessageBoxCaption, MessageBoxButton.OK);
            }
        }));
var service=newtwitterservice(TwitterSettings.ConsumerKey,TwitterSettings.ConsumerSecret);
AuthenticateWith(twitterAccess.AccessToken,twitterAccess.AccessTokenSecret);
string status=string.IsNullOrEmpty(消息)?“”:消息;
var memoryStream=新的memoryStream();
SaveJpeg(memoryStream,bitmap.PixelWidth,bitmap.PixelHeight,0,100);
memoryStream.Position=0;
var options=新的SendTweetWithMediaOptions
{
状态=状态,
Images=新字典{“picture”,memoryStream}
};
service.SendTweetWithMedia(选项,(responseStatus,response)=>Dispatcher.BeginInvoke(()=>
{
memoryStream.Close();
memoryStream.Dispose();
if(response.StatusCode==HttpStatusCode.OK)
{
UiHelper.ShowToastPrompt(AppResources.TwitterToastPrompt);
}
否则如果(response.StatusCode==HttpStatusCode.Unauthorized)
{
NavigationService.Navigate(新Uri(“/TwitterLoginPage.xaml”,UriKind.Relative));
}
其他的
{
MessageBox.Show(response.StatusDescription,AppResources.ErrorMessageBoxCaption,MessageBoxButton.OK);
}
}));
但它在消息框中显示“禁止”

甚至我也尝试用MediaOptions从SendTweetWithMediaOptions中删除图像,但没有效果


有人能帮忙吗?谢谢。

最后,我可以使用TweetSharp+吊床将照片上传到Twitter,并使用此代码

TwitterService service = new TwitterService(consumerKey, consumerSecret);
service.AuthenticateWith(accessToken, accessTokenSecret);

if (thumbnail != null)  // an image post - go through twitpic
{
    MemoryStream ms = new MemoryStream();
    thumbnail.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
    ms.Seek(0, SeekOrigin.Begin);

    // Prepare an OAuth Echo request to TwitPic
    RestRequest request = service.PrepareEchoRequest();
    request.Path = "uploadAndPost.xml";
    request.AddField("key", twitpicApiKey);
    request.AddField("consumer_token", consumerKey);
    request.AddField("consumer_secret", consumerSecret);
    request.AddField("oauth_token", accessToken);
    request.AddField("oauth_secret", accessTokenSecret);
    request.AddField("message", "Failwhale!");
    request.AddFile("media", "failwhale" + Environment.TickCount.ToString(), ms, "image/jpeg");

    // Post photo to TwitPic with Hammock
    RestClient client = new RestClient { Authority = "http://api.twitpic.com/", VersionPath = "1" };
    RestResponse response = client.Request(request);

    return response.Content;
}
将VersionPath的值设置为1非常重要。我以前用过2个,但没用