0

Windows Phone プロジェクトで TweetSharp を使用していますが、何をしてもメディアにツイートを投稿できません。

例外 195 が発生しています: パラメータが見つからないか無効です。

私が提供するストリームが無効であるなど、通常、これは無効なデータの原因である可能性があることを読みました。

他の方法を試しましたが、何も機能しません。同じ例外が発生します...

単純化された共有コードは次のようになります。

MediaLibrary ライブラリ = 新しい 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 の方が適しています。

4

1 に答える 1

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

他の誰もがこの修正を行えるように、これを引っ張ることができるかどうか試してみます。

お役に立てれば。

于 2013-06-17T14:38:15.223 に答える