本記事の対象APIは既にサポートされていません。記事は参考程度にご利用ください。
アルバムとフォトの編集
前回はWindows Live Photo APIを利用した簡単なWebアプリケーションを作成しました。そのアプリケーションでは以下の読み取りに関する内容を実装しました。
- アルバム・
フォト・ フォトタイプの一覧取得 - フォトバイナリデータ取得
今回は,
- アルバムの作成
- フォトのアップロード
- アルバム・
フォトの名前 (タイトル) 変更 - アルバム・
フォトの削除
作成するWebアプリケーションを図1に示します。
あまり良いUIではありませんが,
リクエストとレスポンス
アルバムおよびフォト情報の取得やフォトのダウンロード時には,
最初に今回のコードで共通で利用するメソッドを作成しておきます。Default.
Protected Function CreatedRequest(ByVal path As String, Optional ByVal method As String = "GET") As HttpWebRequest
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(path), HttpWebRequest)
request.Method = method
request.Headers(HttpRequestHeader.Authorization) = String.Format("DelegatedToken dt=""{0}""", Me.DelegateionToken)
Return request
End Function
Live委任認証用のヘッダもここで追加しています。
続いてLiveサービスからのレスポンスを取得する部分もメソッドとして作成しておきましょう。
前回はXML文書やバイナリデータを取得して何かしらの処理をしていましたが,
ここではレスポンス取得するメソッドを次のように作成しました。
Protected Function GetResponse(ByVal request As HttpWebRequest) As HttpStatusCode
Try
Using response As HttpWebResponse = DirectCast(request.GetResponse, HttpWebResponse)
Return response.StatusCode
End Using
Catch webEx As WebException
Return DirectCast(webEx.Response, HttpWebResponse).StatusCode
End Try
End Function
HttpWebRequestオブジェクトを引数として渡し,
アルバム作成およびフォトのアップロードに成功した場合,
Protected Function GetResponse(ByVal request As HttpWebRequest, ByRef location As String) As HttpStatusCode
Try
location = ""
Using response As HttpWebResponse = DirectCast(request.GetResponse, HttpWebResponse)
location = response.Headers(HttpResponseHeader.Location)
Return response.StatusCode
End Using
Catch webEx As WebException
Return DirectCast(webEx.Response, HttpWebResponse).StatusCode
End Try
End Function
参照渡しによりLocationヘッダの値を返すようにしています。