2016-08-23 124 views
0

我正在Xamarin.Forms中編寫一個簡單的應用程序,允許用戶通過Facebook,Google,Instagram,Twitter等社交媒體進行身份驗證。我正在使用Xamarin。 auth來做到這一點。我有一個Facebook登錄問題。我使用的官方指南中報告的同一代碼:如何使用xamarin.auth檢索Facebook上的個人資料信息

https://components.xamarin.com/gettingstarted/xamarin.auth

但是,應用程序請求用戶提供憑據,響應後(在代碼中,t.Result.GetResponseText(),第3節)是一個json包含Facebook用戶名和姓氏,以及一個名爲「id」的字段。相反,我需要用戶的所有配置文件信息,例如年齡,性別等。我想我必須使用返回的id來爲Facebook服務構建一個http請求,以便從id中檢索數據。

回答

2

您需要在您的Facebook鏈接中指定必​​填字段。

例子:

var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me?fields=email,first_name,last_name,gender,picture"), null, eventArgs.Account); 

我如何獲取這些字段後

var response = await request.GetResponseAsync(); 
var obj = JObject.Parse(response.GetResponseText()); 

var id = obj["id"].ToString().Replace("\"", ""); 
var name = obj["first_name"].ToString().Replace("\"", ""); 
var lastName = obj["last_name"].ToString().Replace("\"", ""); 
var email = obj["email"].ToString().Replace("\"", ""); 
+0

爲什麼我得到這個錯誤(在線 - VAR OBJ = JObject.Parse(response.GetResponseText( ));):任務不包含GetResponseText的定義? – TigerLionCheetah

+0

因爲也許你定義變量「響應」就像任務和任務不包含GetReponseText方法的任何定義,所以你需要像響應類型一樣定義「響應」變量。 – Katz

+0

查看該圖片: https://flic.kr/p/Wk1uJT – Katz

相關問題