ブリリアントなWP7 RSSフィード

2011-12-20

Windows Liveの情報取得方法

Windows Live から情報を取得する方法について解説します。具体的な取得方法は別エントリーで行います。
なお、Windows Live認証を行うまでの方法は "Windows Liveの導入から認証までの方法" エントリーを参照ください。

情報取得方法

必要な情報を取得するためには、以下の2つが必要になります。

  • 該当権限の付与
  • 情報アクセスパスを使っての情報取得処理
情報に対する利用権限の付与

f:id:bs-wp7:20111220115746p:image
Windows Live情報を取得するには、情報グループに応じてユーザー許諾が必要になり、許諾範囲は利用権限によって決められています
Windows Live認証時のユーザー許諾画面に、利用権限に応じた取得情報の内容がユーザーへ開示され、ユーザーが同意して初めて対象情報グループへのアクセスが行える仕組みになっています。
利用権限はSignInButtonコントロールScopesプロパティ半角スペースをセパレータにして以下のように設定します。

<phone:PhoneApplicationPage
    …省略…
    xmlns:my="clr-namespace:Microsoft.Live.Controls;assembly=Microsoft.Live.Controls"
    >
    <my:SignInButton Content="Button" Height="71" Name="signInButton1" Width="204" Branding="Skydrive" ClientId="_ClientID_" RedirectUri="https://oauth.live.com/desktop" Scopes="wl.basic wl.signin wl.signin"
</phone:PhoneApplicationPage>

情報へのアクセス処理

ユーザーに利用許可して貰ったデータ群に対して、情報アクセスパスを使って取得する事になります。
sessionはSignInButtonで認証した時に取得したセッションを利用します。

    …省略…
    LiveConnectClient liveConnectClient = new LiveConnectClient(session);
    liveConnectClient.GetCompleted += new EventHandler<LiveOperationCompletedEventArgs>(liveConnectClient_GetCompleted);
    liveConnectClient.GetAsync("情報アクセスパス");
}

void liveConnectClient_GetCompleted(object sender, LiveOperationCompletedEventArgs e) {
    if (e.Error == null) {
        // ここで情報アクセスパス先のデータである e.Result を解析します
    }
}

利用権限情報アクセスパスの重要性が分かって頂けたかと思います。
これ以降、利用権限と情報アクセスパスの詳細を解説していきます。

利用権限一覧

Windows Live情報の利用権限は、スコープ毎に用意されています。Core scopesは3つとも権限付与しておくのが無難で、Extended scopesは取得対象データを確認してから付与するか決めてください。
似たような権限が多くて分かりにくいですが、"Windows Live情報と利用権限の対照表" 見出しに書いてある表を見て権限付与するといいです。

Core scopes
スコープ意味
wl.basicWindows Live プロフィールの情報への読取権限にします
wl.offline_accessいつでもWindows Livの情報へアクセス可能にする権限です
wl.signin自動的にサインインを行う事を可能にする権限です
Extended scopes
スコープ意味
wl.birthdayWindows Live プロフィールの誕生日情報への読取権限です
wl.emailsWindows Live プロフィールのメールアドレス情報への読取権限です
wl.phone_numbersWindows Live プロフィールの電話情報への読取権限です
wl.postal_addressesWindows Live プロフィールの住所情報への読取権限です
wl.work_profileWindows Live プロフィールの仕事情報の読取権限です
wl.shareWindows Live プロフィールのステータスメッセージの更新権限です
wl.contacts_birthdayWindows Live Hotmailの連絡先情報への読取権限です
wl.contacts_createWindows Live Hotmailの連絡先情報を作成する権限です
wl.calendarsWindows Live Hotmailのカレンダー情報への読取権限です
wl.calendars_updateWIndows Live Hotmailのカレンダー情報への作成/読取/更新/削除権限です
wl.events_createWindows Live Hotmailのカレンダー上のイベントの作成権限です
wl.contacts_calendarsWindows Live Hotmailで共有されているカレンダーの読取権限です
wl.photosWindows Live SkyDriveの写真/動画/音楽やコメント/タグの読取権限です
wl.skydriveWindows Live SkyDriveの写真/動画/音楽やタグの読取権限です
wl.skydrive_updateWindows Live SkyDriveの写真/動画/音楽の作成/読取/更新/削除権限です
wl.contacts_photosWindows Live SkyDriveで共有されている写真/動画/音楽やコメント/タグの読取権限です
wl.contacts_skydriveWindows Live SkyDriveで共有されているファイル/音楽/タグの読取権限です
wl.messengerWindows Live Messengerの署名を有効にする権限です
Developer scopes

スコープ意味
wl.applicationsClient ID情報の読取権限です
wl.applications_createClient ID情報の作成権限です

Windows Live情報と利用権限の対照表

情報グループに対して必要な利用権限と、情報アクセスパスを以下の表にまとめました。


情報グループ意味利用権限(Scopes)情報アクセスパス
Userユーザーに関する情報の読取を行います
Windows Live プロフィールの情報になります
link/updated_timeの読取:wl.basic
誕生日情報の読取:wl.birthday
仕事情報の読取:wl.work_profile
メールアドレスの読取:wl.emails
住所の読取:wl.postal_addresses
携帯番号の読取:wl.phone_numbers
/me
/USER_ID
ActivityWindows Live上で公開している活動情報です
名前/共有メッセージ/活動状態、などの情報になります
活動情報の作成:wl.share/me/share
/USER_ID/share
FriendWindows Liveに登録している友達情報を読取ます
ユーザーID/公開している名前、情報になります
友達情報の読取:wl.basic/me/friends
/USER_ID/friends
ContactHotmailの連絡先読取を行います誕生日情報の読取:wl.basic と wl.contacts_birthday
誕生日以外の情報読取:wl.basic
/me/contacts
/USER_ID/contacts
/CONTACT_ID
CalendarHotmailのカレンダーを作成/読取/更新/削除しますカレンダーの読込:wl.calendars
カレンダーの作成/更新/削除:wl.calendars_update
共有されているカレンダーの読取:wl.contacts_calendars
/me/calendars
/USER_ID/calendars
/CALENDAR_ID
EventHotmailのカレンダー上のイベントを作成/読取/更新/削除しますイベント読取:wl.calendars
イベント作成:wl.events_create
イベント更新/削除:wl.calendars_update
共有されているイベントの読取:wl.contacts_calendars
/me/events
/USER_ID/events
/CALENDAR_ID/events
AlbumSkyDrive上の写真/ビデオ/音楽ファイル及びフォルダ情報グループの読取を行いますフォルダ情報読取:wl.photos
ファイル読取:wl.skydrive
共有されているファイル/フォルダの読取:wl.contacts_photos
/me/albums
/USER_ID/albums
/ALBUM_ID
/ALBUM_ID/files, /me/skydrive/files, /me/skydrive/shared/files, /me/skydrive/shared/albums, /USER_ID/skydrive/files
FolderSkyDrive上のフォルダの作成/読取/更新/削除を行いますフォルダ読取:wl.photos
共有されているフォルダの読取:wl.contacts_photos
/FOLDER_ID
/FOLDER_ID/files, /me/skydrive/files, /me/skydrive/shared/files, /USER_ID/skydrive/files, /ALBUM_ID/files
FileSkyDrive上のファイルを作成/読取/更新/削除しますファイル読取:wl.skydrive
ファイル作成/更新/削除:wl.skydrive_update
共有されているファイルの読取:wl.contacts_skydrive
/FILE_ID
/FOLDER_ID/files, /me/skydrive/files, /me/skydrive/shared, /me/skydrive/shared/files, /USER_ID/skydrive/files
PhotoSkyDrive上の写真ファイルの作成/読取/更新/削除を行います写真ファイルの読取:wl.photos
写真ファイルの作成/更新/削除:wl.skydrive_update
共有されている写真ファイル読取:wl.contacts_photos
/PHOTO_ID
/ALBUM_ID/files, /ALBUM_ID/photos, /FOLDER_ID/files, /me/skydrive/files, /me/skydrive/shared/photos, USER_ID/skydrive/files
AudioSkyDrive上の音楽ファイルの作成/読取/更新/削除を行います音楽ファイルの読取:wl.skydrive
音楽ファイルの作成/更新/削除:wl.skydrive_update
共有されている音楽データ読取:wl.contacts_skydrive
/AUDIO_ID
/ALBUM_ID/files, /FOLDER_ID/files, /me/skydrive/files, /USER_ID/skydrive/files
VideoSkyDrive上のビデオを作成/読取/更新/削除しますビデオの読取:wl.photos
ビデオの作成/更新/削除:wl.skydrive_update
共有されているビデオの読取:wl.contacts_photos
/VIDEO_ID
/ALBUM_ID/files, /ALBUM_ID/videos, /FOLDER_ID/files, /me/skydrive/files, /me/skydrive/shared/videos, USER_ID/skydrive/files
CommentSkyDriveの写真/ビデオに対してユーザーが付けたコメントの読取を行いますコメントの読取:wl.photos
共有されているコメントの読取:wl.contacts_photos
/PHOTO_ID/comments
/VIDEO_ID/comments
/COMMENT_ID
TagSkyDrive上の写真/ビデオに対してユーザーが付けたタグの読取を行いますタグ読取:wl.photos & wl.skydrive
共有されているタグの読取:wl.contacts_photos & wl.contacts_skydrive
/PHOTO_ID/tags
/VIDEO_ID/tags
/TAG_ID
ApplicationClientId情報の取得、新規作成が行えます
ClientId情報読取:wl.applications
ClientId新規作成:wl.applications_create
/me/applications
/USER_ID/applications
/APPLICATION_ID
Permissionsユーザーが同意した利用権限(Scopes)の読取を行います
-
/me/permissions
/USER_ID/permissions
ErrorWindows Live APIから返されるエラー情報です
-
-

参考

REST API -MSDN
Scopes and permissions -MSDN


技術部 かわかみひろき

Yun YungYun Yung 2012/01/26 21:43 とても参考になりました、ありがとうございます!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/bs-wp7/20111220/1324355035