Пример #1
0
        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;
        }
Пример #2
0
 void OnLoginComplete(VKUserModel vkUser, string message)
 {
     if (vkUser != null)
     {
         VKUser    = vkUser;
         IsLogedIn = true;
     }
     else
     {
         IsLogedIn = false;
         _dialogService.DisplayAlertAsync("Error", message, "Ok");
     }
 }
Пример #3
0
        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"));
            }
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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");
            }
        }