2011-12-20
Windows Liveの情報取得方法
Windows Live から情報を取得する方法について解説します。具体的な取得方法は別エントリーで行います。
なお、Windows Live認証を行うまでの方法は "Windows Liveの導入から認証までの方法" エントリーを参照ください。
情報取得方法
必要な情報を取得するためには、以下の2つが必要になります。
- 該当権限の付与
- 情報アクセスパスを使っての情報取得処理
情報に対する利用権限の付与

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.basic | Windows Live プロフィールの情報への読取権限にします |
| wl.offline_access | いつでもWindows Livの情報へアクセス可能にする権限です |
| wl.signin | 自動的にサインインを行う事を可能にする権限です |
Extended scopes
| スコープ | 意味 |
|---|---|
| wl.birthday | Windows Live プロフィールの誕生日情報への読取権限です |
| wl.emails | Windows Live プロフィールのメールアドレス情報への読取権限です |
| wl.phone_numbers | Windows Live プロフィールの電話情報への読取権限です |
| wl.postal_addresses | Windows Live プロフィールの住所情報への読取権限です |
| wl.work_profile | Windows Live プロフィールの仕事情報の読取権限です |
| wl.share | Windows Live プロフィールのステータスメッセージの更新権限です |
| wl.contacts_birthday | Windows Live Hotmailの連絡先情報への読取権限です |
| wl.contacts_create | Windows Live Hotmailの連絡先情報を作成する権限です |
| wl.calendars | Windows Live Hotmailのカレンダー情報への読取権限です |
| wl.calendars_update | WIndows Live Hotmailのカレンダー情報への作成/読取/更新/削除権限です |
| wl.events_create | Windows Live Hotmailのカレンダー上のイベントの作成権限です |
| wl.contacts_calendars | Windows Live Hotmailで共有されているカレンダーの読取権限です |
| wl.photos | Windows Live SkyDriveの写真/動画/音楽やコメント/タグの読取権限です |
| wl.skydrive | Windows Live SkyDriveの写真/動画/音楽やタグの読取権限です |
| wl.skydrive_update | Windows Live SkyDriveの写真/動画/音楽の作成/読取/更新/削除権限です |
| wl.contacts_photos | Windows Live SkyDriveで共有されている写真/動画/音楽やコメント/タグの読取権限です |
| wl.contacts_skydrive | Windows Live SkyDriveで共有されているファイル/音楽/タグの読取権限です |
| wl.messenger | Windows Live Messengerの署名を有効にする権限です |
Developer scopes
| スコープ | 意味 |
|---|---|
| wl.applications | Client ID情報の読取権限です |
| wl.applications_create | Client 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 |
| Activity | Windows Live上で公開している活動情報です 名前/共有メッセージ/活動状態、などの情報になります | 活動情報の作成:wl.share | /me/share /USER_ID/share |
| Friend | Windows Liveに登録している友達情報を読取ます ユーザーID/公開している名前、情報になります | 友達情報の読取:wl.basic | /me/friends /USER_ID/friends |
| Contact | Hotmailの連絡先読取を行います | 誕生日情報の読取:wl.basic と wl.contacts_birthday 誕生日以外の情報読取:wl.basic | /me/contacts /USER_ID/contacts /CONTACT_ID |
| Calendar | Hotmailのカレンダーを作成/読取/更新/削除します | カレンダーの読込:wl.calendars カレンダーの作成/更新/削除:wl.calendars_update 共有されているカレンダーの読取:wl.contacts_calendars | /me/calendars /USER_ID/calendars /CALENDAR_ID |
| Event | Hotmailのカレンダー上のイベントを作成/読取/更新/削除します | イベント読取:wl.calendars イベント作成:wl.events_create イベント更新/削除:wl.calendars_update 共有されているイベントの読取:wl.contacts_calendars | /me/events /USER_ID/events /CALENDAR_ID/events |
| Album | SkyDrive上の写真/ビデオ/音楽ファイル及びフォルダ情報グループの読取を行います | フォルダ情報読取: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 |
| Folder | SkyDrive上のフォルダの作成/読取/更新/削除を行います | フォルダ読取:wl.photos 共有されているフォルダの読取:wl.contacts_photos | /FOLDER_ID /FOLDER_ID/files, /me/skydrive/files, /me/skydrive/shared/files, /USER_ID/skydrive/files, /ALBUM_ID/files |
| File | SkyDrive上のファイルを作成/読取/更新/削除します | ファイル読取: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 |
| Photo | SkyDrive上の写真ファイルの作成/読取/更新/削除を行います | 写真ファイルの読取: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 |
| Audio | SkyDrive上の音楽ファイルの作成/読取/更新/削除を行います | 音楽ファイルの読取:wl.skydrive 音楽ファイルの作成/更新/削除:wl.skydrive_update 共有されている音楽データ読取:wl.contacts_skydrive | /AUDIO_ID /ALBUM_ID/files, /FOLDER_ID/files, /me/skydrive/files, /USER_ID/skydrive/files |
| Video | SkyDrive上のビデオを作成/読取/更新/削除します | ビデオの読取: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 |
| Comment | SkyDriveの写真/ビデオに対してユーザーが付けたコメントの読取を行います | コメントの読取:wl.photos 共有されているコメントの読取:wl.contacts_photos | /PHOTO_ID/comments /VIDEO_ID/comments /COMMENT_ID |
| Tag | SkyDrive上の写真/ビデオに対してユーザーが付けたタグの読取を行います | タグ読取:wl.photos & wl.skydrive 共有されているタグの読取:wl.contacts_photos & wl.contacts_skydrive | /PHOTO_ID/tags /VIDEO_ID/tags /TAG_ID |
| Application | ClientId情報の取得、新規作成が行えます | ClientId情報読取:wl.applications ClientId新規作成:wl.applications_create | /me/applications /USER_ID/applications /APPLICATION_ID |
| Permissions | ユーザーが同意した利用権限(Scopes)の読取を行います | /me/permissions /USER_ID/permissions | |
| Error | Windows Live APIから返されるエラー情報です |
参考
REST API -MSDN
Scopes and permissions -MSDN
技術部 かわかみひろき
- 12 http://t.co/Rfb8WOCI
- 2 http://longurl.org
- 2 http://search.yahoo.co.jp/search?p=XNA+update&tid=top_ga1_sa&ei=UTF-8&aq=-1&pstart=1&fr=top_ga1_sa&b=31
- 2 http://www.bing.com/search?q="Yu+Gothic"+フォント&qs=n&sk=&form=QBRE
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=windows phone ブラウザの起動&source=web&cd=10&ved=0CG4QFjAJ&url=http://d.hatena.ne.jp/bs-wp7/20110915/1316044989&ei=8CTwToS2EIbXmAXx8oCLAg&usg=AFQjCN
- 1 http://clip.livedoor.com/clip/add?link=http://d.hatena.ne.jp/bs-wp7/20111220/1324355035&title=Windows Liveの情報取得方法 - ブリリアントなWP
- 1 http://d.hatena.ne.jp/keyword/XNA
- 1 http://d.hatena.ne.jp/notify-NotifyUser_Communication?aHR0cDovL2QuaGF0ZW5hLm5lLmpwL2JzLXdwNy8yMDExMDkxNS8xMzE2MDQ0OTg5
- 1 http://hashtagsjp.appspot.com/tag/wp7dev_jp
- 1 http://plus.url.google.com/url?sa=z&n=1324359365505&url=http://d.hatena.ne.jp/bs-wp7/20111220/1324355035&usg=8k6vU5uZ9RBxATd7xAwJFj5OWzc.
