Example #1
0
        internal static void ProcessLoginResult(string result, bool wasValidating, Action <VKValidationResponse> validationCallback)
        {
            bool success = false;

            if (result == null)
            {
                SetAccessTokenError(new VKError {
                    error_code = (int)VKResultCode.UserAuthorizationFailed
                });
            }
            else
            {
                var tokenParams = VKUtil.ExplodeQueryString(result);
                if (CheckAndSetToken(tokenParams, wasValidating) == CheckTokenResult.Success)
                {
                    success = true;
                }
            }

            if (validationCallback != null)
            {
                validationCallback(new VKValidationResponse {
                    IsSucceeded = success
                });
            }
        }
        /// <summary>
        /// Retreive token from key-value query string
        /// </summary>
        /// <param name="urlString">String that contains URL-query part with token. E.g. access_token=eee&expires_in=0..</param>
        /// <returns>parsed token</returns>
        public static VKAccessToken FromUrlString(String urlString)
        {
            if (urlString == null)
            {
                return(null);
            }

            var args = VKUtil.ExplodeQueryString(urlString);

            return(TokenFromParameters(args));
        }
        public static bool HandleUri(Uri uri)
        {
            var tempUriStr = uri.ToString();

            if (tempUriStr.StartsWith("/Protocol"))
            {
                var outerQueryParamsString = VKUtil.GetParamsOfQueryString(tempUriStr);

                if (!string.IsNullOrEmpty(outerQueryParamsString))
                {
                    var outerQueryParams = VKUtil.ExplodeQueryString(outerQueryParamsString);
                    if (outerQueryParams.ContainsKey("encodedLaunchUri"))
                    {
                        var launchUriEncoded = outerQueryParams["encodedLaunchUri"];

                        var launchUriDecoded = WebUtility.UrlDecode(launchUriEncoded);

                        if (launchUriDecoded.StartsWith("vk") && launchUriDecoded.Contains("://authorize"))
                        {
                            launchUriDecoded = launchUriDecoded.Replace("authorize/#", "authorize/?");

                            var innerQueryParamsString = VKUtil.GetParamsOfQueryString(launchUriDecoded);

                            VKSDK.ProcessLoginResult(innerQueryParamsString, false, null);

                            return(true);
                        }
                        else
                        {
                            // default start
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }