public Task <FacebookUserInfo> GetUserInfo() { var keys = new object [] { "fields" }; var values = new object [] { "id,first_name,last_name,email" }; string version = new GraphRequest("/me", null).Version; string httpMethod = new GraphRequest("/me", null).HTTPMethod; GraphRequest graphRequest = new GraphRequest("/me", NSDictionary.FromObjectsAndKeys(values, keys), AccessToken.CurrentAccessToken.TokenString, version, httpMethod); var tcs = new TaskCompletionSource <FacebookUserInfo>(); graphRequest.Start((GraphRequestConnection connection, NSObject result, NSError error) => { if (error == null) { tcs.TrySetResult(FacebookUserInfo.CreateFrom(((NSDictionary)result).Select(v => new KeyValuePair <string, string>(v.Key.ToString(), v.Value.ToString())).ToDictionary(v => v.Key, v => v.Value))); } else { tcs.SetException(new NSErrorException(error)); } }); return(tcs.Task); }
public void OnCompleted(GraphResponse response) { if (response.Error == null) { Org.Json.JSONArray userInfoKeys = response.JSONObject.Names(); Dictionary <string, string> userInfo = new Dictionary <string, string>(); for (int i = 0; i < userInfoKeys.Length(); i++) { userInfo.Add(userInfoKeys.Get(i).ToString(), response.JSONObject.GetString(userInfoKeys.Get(i).ToString())); } _taskCompletionSource.TrySetResult(FacebookUserInfo.CreateFrom(userInfo)); } else { _taskCompletionSource.TrySetException(response.Error.Exception); } }