【问题标题】:Cannot tweet with media using TweetSharp 2.3.0 on Windows Phone无法在 Windows Phone 上使用 TweetSharp 2.3.0 通过媒体发布推文
【发布时间】:2013-07-10 18:25:55
【问题描述】:

我对 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);
            }
        }));

但它在消息框中显示“禁止”。

即使我尝试从 SendTweetWithMediaOptions 中删除图像,但它没有帮助。

有人可以帮忙吗?谢谢。

【问题讨论】:

    标签: c# windows-phone tweetsharp


    【解决方案1】:

    我终于可以使用 TweetSharp + Hammock 和此代码将照片上传到 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,但是没用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 2016-01-08
      • 1970-01-01
      相关资源
      最近更新 更多