Example #1
0
        /// <summary>
        /// Obtains an access token given an authorization code and callback URL.
        /// </summary>
        /// <param name="returnUrl">
        /// The return url.
        /// </param>
        /// <param name="authorizationCode">
        /// The authorization code.
        /// </param>
        /// <returns>
        /// The access token.
        /// </returns>
        protected override string QueryAccessToken(Uri returnUrl, string authorizationCode)
        {
            // Note: Facebook doesn't like us to url-encode the redirect_uri value
            var builder = new UriBuilder(TokenEndpoint);

            builder.AppendQueryArgs(
                new Dictionary <string, string> {
                { "client_id", _appId },
                { "redirect_uri", NormalizeHexEncoding(returnUrl.AbsoluteUri) },
                { "client_secret", _appSecret },
                { "code", authorizationCode },
                { "scope", "" },
            });

            using (var client = new WebClient())
            {
                string data = client.DownloadString(builder.Uri);
                if (string.IsNullOrEmpty(data))
                {
                    return(null);
                }
                _accessTokenResponse = JsonConvert.DeserializeObject <VkAccessTokenResponse>(data);
                if (_accessTokenResponse != null)
                {
                    return(_accessTokenResponse.access_token);
                }

                return(string.Empty);
            }
        }
Example #2
0
        /// <summary>
        /// Obtains an access token given an authorization code and callback URL.
        /// </summary>
        /// <param name="returnUrl">
        /// The return url.
        /// </param>
        /// <param name="authorizationCode">
        /// The authorization code.
        /// </param>
        /// <returns>
        /// The access token.
        /// </returns>
        protected override string QueryAccessToken(Uri returnUrl, string authorizationCode)
        {
            // Note: Facebook doesn't like us to url-encode the redirect_uri value
            var builder = new UriBuilder(TokenEndpoint);
            builder.AppendQueryArgs(
                new Dictionary<string, string> {
					{ "client_id", _appId },
					{ "redirect_uri", NormalizeHexEncoding(returnUrl.AbsoluteUri) },
					{ "client_secret", _appSecret },
					{ "code", authorizationCode },
					{ "scope", "" },
				});

            using (var client = new WebClient())
            {
                string data = client.DownloadString(builder.Uri);
                if (string.IsNullOrEmpty(data))
                {
                    return null;
                }
                _accessTokenResponse = JsonConvert.DeserializeObject<VkAccessTokenResponse>(data);
                if (_accessTokenResponse != null)
                {
                    return _accessTokenResponse.access_token;
                }

                return string.Empty;
            }
        }