-1

WP7のSilverlightコードを介してTwitterに画像をアップロードしようとしています。メッセージは投稿できますが、画像は投稿できません。

ライブラリのダウンロードを含めてすべて試しましたが、ヒントは得られませんでした。

次のリンクでは、 https://dev.twitter.com/docs/api/1/post/statuses/update_with_media

設定できない点が1つあります。「POSTステータス/更新とは異なり、このメソッドは生のマルチパートデータを想定しています。POSTリクエストのContent-Typeは、media[]パラメータを使用してmultipart/form-dataに設定する必要があります。」

置き方がわからない。

誰かが私を案内したり、画像アップロードのサンプルを提供したりできますか?

4

1 に答える 1

0

写真が LoadedPhoto と呼ばれる場合、そこからメモリ ストリームを作成できます。

MemoryStream ms = new MemoryStream(); 
LoadedPhoto.SaveJpeg(ms, LoadedPhoto.PixelWidth, LoadedPhoto.PixelHeight, 0, 100); 

取得した認証内容に従って OAuthCredentials オブジェクトを作成する

var credentials = new OAuthCredentials
{
    Type = OAuthType.ProtectedResource,
    SignatureMethod = OAuthSignatureMethod.HmacSha1,
    ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader,
    ConsumerKey = Common.TwitterSettings.ConsumerKey,
    ConsumerSecret = Common.TwitterSettings.ConsumerKeySecret,
    Token = file.AccessToken,
    TokenSecret = file.AccessTokenSecret,
    Version = "1.0"
};

RestClient と RestRequest を作成する

var restClient = new RestClient
{
    Authority = "https://upload.twitter.com"
};

var restRequest = new RestRequest
{
    Credentials = credentials,
    Path = "/1/statuses/update_with_media.xml",
    Method = Hammock.Web.WebMethod.Post
};

ストリーム位置を 0 に設定します

ms.Position = 0;

フィールドを RestRequest に追加する

restRequest.AddField("status", message);
restRequest.AddFile("media[]", "ScreenShot.png", ms, "image/jpeg");

そしてリクエスト開始

restClient.BeginRequest(restRequest, callback);

callback は、リクエストのコールバック メソッドです。

私のブログ投稿から取得しました。興味がある場合は、詳細についてそこを参照してください。

于 2012-09-10T09:18:49.810 に答える