async Task GetUserInfo(VKUserModel vkUserModel) { var request = VKApi.Users.Get(NSDictionary.FromObjectAndKey((NSString)@"photo_400_orig", VKApiConst.Fields)); var response = await request.ExecuteAsync(); var users = response.ParsedModel as VKUsersArray; var account = users?.FirstObject as VKUser; if (account != null) { vkUserModel.Name = account.first_name + " " + account.last_name; if (!string.IsNullOrEmpty(account.photo_400_orig)) { vkUserModel.Picture = new Uri(account.photo_400_orig); } } //Depends user image quality is the User profile of the VK account, the photo might be in different fields //var request100 = VKApi.Users.Get(NSDictionary.FromObjectAndKey((NSString)@"photo_100", VKApiConst.Fields)); //var response100 = await request100.ExecuteAsync(); //var account100 = (response100.ParsedModel as VKUsersArray)?.FirstObject as VKUser; //var request200 = VKApi.Users.Get(NSDictionary.FromObjectAndKey((NSString)@"photo_200", VKApiConst.Fields)); //var response200 = await request200.ExecuteAsync(); //var account200 = (response200.ParsedModel as VKUsersArray)?.FirstObject as VKUser; //var request201 = VKApi.Users.Get(NSDictionary.FromObjectAndKey((NSString)@"photo_200_orig", VKApiConst.Fields)); //var response201 = await request201.ExecuteAsync(); //var account201 = (response201.ParsedModel as VKUsersArray)?.FirstObject as VKUser; //var request50 = VKApi.Users.Get(NSDictionary.FromObjectAndKey((NSString)@"photo_50", VKApiConst.Fields)); //var response50 = await request50.ExecuteAsync(); //var account50 = (response50.ParsedModel as VKUsersArray)?.FirstObject as VKUser; }
void OnLoginComplete(VKUserModel vkUser, string message) { if (vkUser != null) { VKUser = vkUser; IsLogedIn = true; } else { IsLogedIn = false; _dialogService.DisplayAlertAsync("Error", message, "Ok"); } }
async Task GetUserInfo(VKUserModel vkUserModel) { var request = VKApi.Users.Get(VKParameters.From(VKApiConst.Fields, @"photo_400_orig")); var response = await request.ExecuteAsync(); var jsonArray = response.Json.OptJSONArray(@"response"); var account = jsonArray?.GetJSONObject(0); vkUserModel.Name = account.OptString(@"first_name") + " " + account.OptString(@"last_name"); if (!string.IsNullOrEmpty(account.OptString(@"photo_400_orig"))) { vkUserModel.Picture = new Uri(account.OptString(@"photo_400_orig")); } }
public async void AccessAuthorizationFinished(VKAuthorizationResult result) { if (result?.Token == null) { _onLoginComplete?.Invoke(null, result?.Error?.LocalizedDescription ?? "VK login unknown error"); } else { VKUserModel vkUserModel = new VKUserModel { Email = result.Token.Email, UserID = result.Token.UserId }; await GetUserInfo(vkUserModel); _onLoginComplete?.Invoke(vkUserModel, string.Empty); } }
protected override async void OnActivityResult(int requestCode, Result resultCode, Intent data) { bool vkResult; var task = VKSdk.OnActivityResultAsync(requestCode, resultCode, data, out vkResult); if (!vkResult) { base.OnActivityResult(requestCode, resultCode, data); VKService.OnLoginComplete?.Invoke(null, "VK Login failed"); return; } try { var token = await task; var vkUserModel = new VKUserModel() { Email = token.Email, UserID = token.UserId }; await GetUserInfo(vkUserModel); VKService.OnLoginComplete?.Invoke(vkUserModel, string.Empty); } catch (VKException vkEx) { if (vkEx.Error.ErrorCode == VKError.VkCanceled) { VKService.OnLoginComplete?.Invoke(null, "Cancelled by User"); } else { VKService.OnLoginComplete?.Invoke(null, "VK login failed"); } } catch (Exception ex) { VKService.OnLoginComplete?.Invoke(null, "VK Login unknown error"); } }