コード例 #1
0
        private async Task <OAuthToken> GetNewClientCredential(string scopeList)
        {
            var parameters = new HttpPropertyList();

            parameters["client_id"]     = _settings.ClientId;
            parameters["client_secret"] = _settings.ClientSecret;
            parameters["grant_type"]    = "client_credentials";
            parameters["scope"]         = scopeList;

            return(await Send(parameters));
        }
コード例 #2
0
        private async Task <OAuthToken> GetRefreshedClientCredential(string refreshToken)
        {
            var parameters = new HttpPropertyList();

            parameters["client_id"]     = _settings.ClientId;
            parameters["client_secret"] = _settings.ClientSecret;
            parameters["grant_type"]    = "refresh_token";
            parameters["refresh_token"] = refreshToken;

            return(await Send(parameters));
        }
コード例 #3
0
        private async Task <OAuthToken> Send(HttpPropertyList parameters)
        {
            OAuthToken token = null;

            try
            {
                string body    = parameters.FormEncode();
                string request = await new HttpHelper(_settings.EndPoint)
                                 .SendRequest(HttpMethod.Post, "/oauth/access_token", body, null, "application/x-www-form-urlencoded");

                token = OAuthToken.ParseJson(request);
            }
            catch (InvalidResponseException ex)
            {
                if (ex.InvalidResponseEntity.BadRequest == "invalid_client")
                {
                    OnAuthorizationFailed();
                }
                throw;
            }

            return(token);
        }