Невозможно использовать SendTweetWithMediaOptions в Windows Phone

Я использую TweetSharp в проекте Windows Phone, и независимо от того, что я делаю, я не могу опубликовать твит с медиа.

Я получаю исключение 195: отсутствует или недействителен параметр.

Я читал, что обычно это может быть причиной неверных данных, например, поток, который я предоставляю, является недействительным.

Я пробовал другой способ, но ничего не работает, я получаю то же исключение...

Код общего доступа, упрощенный, выглядит так:

Библиотека MediaLibrary = 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 больше подходит для моего проекта.

1 ответ

Наконец, через некоторое время я нашел проблему с этим, и я уверен, что другие проблемы, связанные с WP и SendTweetWithMediaOptions, другие.

Дело в том, что если вы покопаетесь в SendTweetWithMedia, как сейчас, вы попадете в TwitterService.cs, где будет вызываться WithHammock, просто изображения не передаются в качестве параметров, поэтому они тут же теряются:)

Я сделал это, передав параметры и добавив

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

Я попробую и посмотрю, смогу ли я вытащить это, чтобы все остальные могли иметь это исправление.

Надеюсь это поможет.

Другие вопросы по тегам