在前面的兩篇文章裡簡單的介紹過說,
如何簡單的登入(連結)Live ID,以及使用SignInButton 的注意小事項
但是單單這樣而已,基本上這個App沒甚麼用呀!
一個App使用Live SDK時,除了利用SSO外,另一個重要的就是如何得到這個Live ID的各種資料。
在讀取資料之前,先來介紹一下Scopes..........
在前面的兩篇文章裡簡單的介紹過說,
如何簡單的登入(連結)Live ID,以及使用SignInButton 的注意小事項
但是單單只是登入(連結)Live ID,基本上這個App沒甚麼用呀!
一個App使用Live SDK時,除了利用SSO外,
另一個重要的就是如何得到這個Live ID的各種資料。
目前Live ID裡面所擁有的資料基本上包含了
- 個人基本資料
- 行事曆與事件
- 通訊錄(聯絡人)
- SkyDrive
在讀取資料之前,先來介紹一下Scopes,
由於想要使用Live Connect的資訊時,不論是讀取或是寫入,
App必須要取得使用者的同意,這樣的權限,就稱呼為Scope (領域!?),
Live Connect有許許多多的Scopes,分別授予給不同的層級,這也算是種安全性的處理。
例如今天如果只是要存取使用者個人資料,那這個APP就不應該也擁有存取行事曆的能力。
回到前兩篇有提到這兩段程式碼
<-- in .xaml--> <live:SignInButton Scopes="wl.signin wl.basic" />
// in .xaml.cs LiveAuthClient auth = new LiveAuthClient(); LiveLoginResult authResult = await auth.LoginAsync(new List<string>() { "wl.signin", "wl.basic", "wl.birthday" });
其中的wl.signin、wl.basic就是所謂的Scopes。
存取所需要的資料時,如果沒有決定足夠的Scopes時,想當然的就不能做到想要做的事情啦!
Scopes主要可以分成三種類型:Core, Extended, Developer,並往下劃分可分成....
- Core - 核心領域 - 基本資料的存讀取
- wl.basic *
基本個人檔案的讀取權。
啟用使用者連絡人清單的讀取權。- wl.signin *
單一登入行為。
當使用者登入 Live Connect 時也會登入到此APP (Metro !?)。- wl.offline_access
App擁有隨時讀取和更新使用者資訊的能力。
否則只有在使用者登入 Live Connect 且使用App時,才能存取使用者資訊。- Extended - 擴充領域 - 下列資料的存讀取
- wl.birthday
使用者生日資訊的讀取權。- wl.work_profile
使用者雇主及工作職位資訊的讀取權。- wl.emails
使用者私人、慣用以及公司電子郵件地址的讀取權。- wl.phone_numbers
使用者私人、公司及行動電話號碼的讀取權。- wl.postal_addresses
使用者郵寄地址的讀取權。- wl.share
可更新使用者狀態訊息的權限。- wl.calendars
使用者行事曆和事件的讀取權。(事件部分測試時,是指尚未發生的事件)- wl.calendars_update
使用者行事曆和事件的讀取和寫入權限。
將包含wl.calendars的權限- wl.events_create
使用者預設行事曆上建立權限。
- wl.contacts_birthday
使用者連絡人生日資訊的讀取權。
將包含wl.birthday的權限- wl.contacts_create
建立新連絡人的權限。- wl.contacts_calendars
啟用其他使用者與使用者共用的任何行事曆和事件讀取權。
將包含wl.calendars的權限- wl.skydrive
使用者儲存在 SkyDrive 的檔案讀取權。- wl.skydrive_update
使用者儲存在 SkyDrive 的檔案讀取和寫入權限。
將包含wl.skydrive的權限- wl.contacts_skydrive
其他使用者與使用者共用的 Microsoft SkyDrive 檔案的讀取權。
將包含wl.skydrive的權限- wl.photos
使用者相片、影片、音訊及專輯的讀取權- wl.contacts_photos
使用者專輯、相片、影片、音訊,以及相關回應和標籤的讀取權。 將包含wl.photos的權限- wl.messenger
可登入 Windows Live Messenger 可延伸訊息和顯示狀態通訊協定 (XMPP) 服務的權限。- Developer - 開發人員領域 - 算是更深入的使用
- wl.applications
開發人員用戶端識別碼的讀取權,建立該識別碼的目的是為了與 Live Connect API 一起搭配使用。\- wl.applications_create
替開發人員建立新用戶端識別碼的權限。
更詳細的資料請參考MSDN文件 - Scopes and permissions
因此如果今天你的App將會存取行事曆的話,就是要加上wl.calendars的Scope,甚至是wl.calendars_update的Scope,
如果今天你的App將會存取SkyDrive的話,就是要加上wl.skydrive的Scope,甚至是wl.skydrive_update的Scope。
今天就先簡單整理一下Scopes的部分,
下一篇就來整理一下關於如何取得使用者資料吧!
(莫名其妙地變成系列文了嗎 )
參考連結