2016-03-04 11 views
3

在Windows 10 UWP中我嘗試使用WebAuthenticationCoreManager.RequestTokenAsync從具有Microsoft帳戶的登錄中獲取結果。 我使用Success獲得WebTokenRequestResult。 ResponseData [0]包含帶有ID的WebAccount - 但UserName爲空。 調用的範圍是wl.basic - 所以我應該得到很多信息... 我不知道如何檢索額外的信息 - 對於當前的測試,用戶名可以。WebTokenRequestResult中的用戶名爲空

我檢查了通用示例 - 在那裏我找到了一個片段,試圖做我在嘗試 - webTokenRequestResult.ResponseData [0] .WebAccount.UserName的輸出。

順便說一句 - 示例輸出也是空的。

這是一個錯誤 - 或者我(和樣本中的MS)必須做些什麼來獲取用戶配置文件數據(或至少是用戶名)?

+0

我第二個這個。爲什麼用戶名字段是空的?我只是想實現類似於谷歌玩遊戲或蘋果遊戲中心的東西,在那裏我可以從設備獲取用於遊戲項目的基本用戶名和ID。 – SammyG

回答

1

根據文檔(https://docs.microsoft.com/en-us/windows/uwp/security/web-account-manager),你必須做出一個具體的REST API調用來檢索它:

var restApi = new Uri(@"https://apis.live.net/v5.0/me?access_token=" +  result.ResponseData[0].Token); 

using (var client = new HttpClient()) 
{ 
    var infoResult = await client.GetAsync(restApi); 
    string content = await infoResult.Content.ReadAsStringAsync(); 

    var jsonObject = JsonObject.Parse(content); 
    string id = jsonObject["id"].GetString(); 
    string name = jsonObject["name"].GetString(); 
} 

至於爲何WebAccount財產不被設置... 舉重若輕

而且僅供參考,此處返回的「id」與驗證請求返回的WebAccount.Id屬性完全不同。

相關問題