Twitter APIにOAuth認証されたリクエストを送信する
この記事は以下の環境が対象です:
- .NET Framework 4.5
Twitter APIに対してOAuthの認証を要求したり認証済みのWeb リクエストを送信するクラスです。
通常のWebリクエスト送信手順とほぼ変わりません。引数としてTwitter APIのURL(OAuth要求、ツイートなどで異なります)とリクエストヘッダーを受け取ります(リクエストヘッダーの生成についてはTwitterのOAuthリクエスト用ヘッダーを生成するを参照してください)。またOAuth認証要求時の証明情報やツイートの内容などが存在する場合はリクエストデータとしてストリームに書き込みます。
/// <summary> /// リクエストをポスト /// </summary> private async Task<string> PostReuqest(string destUrl, string header, string requestDataString = null) { string response = String.Empty; //APIへのリクエスト(ポスト)を作成 HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(destUrl); Request.Method = "POST"; Request.Headers["Authorization"] = header; //リクエストデータが存在する場合はストリームに書き込む if (requestDataString != null) { using (StreamWriter streamWriter = new StreamWriter(await Request.GetRequestStreamAsync())) { await streamWriter.WriteAsync(requestDataString); } } //リクエストを実行しレスポンスを取得 HttpWebResponse Response = (HttpWebResponse)await Request.GetResponseAsync(); if (Response.StatusCode == HttpStatusCode.OK) { using (StreamReader ResponseDataStream = new StreamReader(Response.GetResponseStream())) { response = await ResponseDataStream.ReadToEndAsync(); } } return response; }