写真が 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 は、リクエストのコールバック メソッドです。
私のブログ投稿から取得しました。興味がある場合は、詳細についてそこを参照してください。