0

Twitter API バージョン 1.1 と update_with_media.json メソッドを使用して、画像を Twitter にアップロードしようとしています。

https://dev.twitter.com/docs/api/1.1/post/statuses/update_with_media

これは私がこれまでに持っているコードですが、さまざまなバリエーションがあるにもかかわらず、アップロードを成功させることはできません。

    public TwitterResponse UpdateStatus(string message, String fileName, String contentType, byte[] image)
    {
        RestClient client = new RestClient
        {
            Authority = TwitterConstants.Authority,
            VersionPath = TwitterConstants.Version

        };

        message = HttpUtility.HtmlEncode(message);

        client.AddHeader("content-type", "multipart/form-data");

        client.AddField("status", message);
        client.AddField("media[]", Convert.ToBase64String(image) + ";filename=" + fileName + ";type=" + contentType);

        RestRequest request = new RestRequest
        {
            Credentials = this.Credentials,
            Path = "statuses/update_with_media.json",
            Method = Hammock.Web.WebMethod.Post

        };

        return new TwitterResponse(client.Request(request));
    }

これらのリクエストを実行するために Hammock を使用しています。

他の問題の可能性を排除するために、update.json メソッドを使用して Twitter にステータスの更新を正常に投稿できます。

また、client.AddFile メソッドを使用してみましたが、Fiddler を使用すると、すべてが整っているように見えます。しかし、私が戻ってくるエラーメッセージは

{"errors":[{"code":195,"message":"Missing or invalid url parameter"}]}
4

2 に答える 2

2

ネイティブの Twitter API を使用する代わりに、Nuget で入手できる TweeterSharp プラグインを使用できます。

説明付きのサンプルは私がこの記事に書いていますC#を使用してtwitterに画像付きのメッセージを投稿してください

特に、これはコードスニペットです

using (var stream = new FileStream(imagePath, FileMode.Open))
            {
                var result = service.SendTweetWithMedia(new SendTweetWithMediaOptions
                {
                    Status = message,
                    Images = new Dictionary<string, Stream> { { "john", stream } }
                });
                lblResult.Text = result.Text.ToString();
            }

完全なデモは、記事に添付されてダウンロードできます。自由にダウンロードしてください。

ありがとう

于 2015-12-08T22:51:35.583 に答える
0

Hammock や C# を使用したことはありませんが、同様の問題があったことは知っています...

私たちのコア twitter ライブラリはすべての機能に対応していましたが、画像のアップロードは機能しませんでした。私たちの twitter lib が依存していた OAuth ライブラリは、ファイルを投稿するときに署名を適切に計算していなかったことが判明しました。機能させるには、oauth を更新する必要がありました。

私たちの場合、更新された OAuth を置き換えると、使用しようとしていた正確なコードが正常に機能しました。

古いバージョンの OAuth を使用している場合は、新しいバージョンを探して、簡単なスクリプトをまとめて試してみることをお勧めします。

そのエラー メッセージに関しては、特にエラー ページにも記載されていないため、有効なメッセージというよりはニシンである可能性があります。

https://dev.twitter.com/docs/error-codes-responses

于 2014-03-26T13:07:00.043 に答える