private async void TwitterTests_LogonAsync()
        {
            var loader = new OAuthCredentialLoader();

            Assert.IsNotNull(loader, "Unable to construct OAuthCredentialLoader");

            var credentials = loader.Load("OAuth.default.secret.json");

            Assert.IsNotNull(credentials);
            Assert.AreEqual("http://checkoutmystuff.net/", credentials.CallbackUri);

            var twitterAuth = new TwitterOAuthTokens
            {
                AccessToken       = credentials.AccessToken,
                AccessTokenSecret = credentials.AccessTokenSecret,
                CallbackUri       = credentials.CallbackUri,
                ConsumerKey       = credentials.ConsumerKey,
                ConsumerSecret    = credentials.ConsumerSecret
            };

            TwitterService.Instance.Initialize(twitterAuth);

            //TwitterService.Instance.Initialize(credentials.ConsumerKey, credentials.ConsumerSecret, credentials.CallbackUri);

            // Login to Twitter
            var loggedIn = await TwitterService.Instance.LoginAsync();

            Assert.IsTrue(loggedIn, "FAILED to login.");

            var user = await TwitterService.Instance.GetUserAsync();

            Assert.IsNotNull(user, "FAILED to get the user.");
        }
        public bool Iniciar(string consumerKey, string consumerSecret, string callbackUri)
        {
            if (string.IsNullOrEmpty(consumerKey))
            {
                throw new ArgumentNullException(nameof(consumerKey));
            }

            if (string.IsNullOrEmpty(consumerSecret))
            {
                throw new ArgumentNullException(nameof(consumerSecret));
            }

            if (string.IsNullOrEmpty(callbackUri))
            {
                throw new ArgumentNullException(nameof(callbackUri));
            }

            var oAuthTokens = new TwitterOAuthTokens
            {
                ConsumerKey    = consumerKey,
                ConsumerSecret = consumerSecret,
                CallbackEnlace = callbackUri
            };

            return(Iniciar(oAuthTokens));
        }
Example #3
0
        private void Connect()
        {
            try
            {
                var twitterAuth = new TwitterOAuthTokens
                {
                    //AccessToken = _oauthCredentials.AccessToken,
                    //AccessTokenSecret = _oauthCredentials.AccessTokenSecret,
                    CallbackUri    = CallbackUrl,
                    ConsumerKey    = ConsumerKey,
                    ConsumerSecret = ConsumerSecrect
                };

                TwitterService.Instance.Initialize(ConsumerKey, ConsumerSecrect, CallbackUrl);
                //TwitterService.Instance.Initialize(twitterAuth);

                TwitterService.Instance.Logout();
            }
            catch (Exception ex)
            {
                // GULP - In order to logout you have to initialize, seems like a chicken/egg problem
            }

            InitializeTwitter();
        }
Example #4
0
        private async void InitializeTwitter()
        {
            try
            {
                IsBusy = true;

                if (!NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable)
                {
                    Message = "No Internet";

                    return;
                }

                Message = "Logging into Twitter...";

                var twitterAuth = new TwitterOAuthTokens
                {
                    //AccessToken = _oauthCredentials.AccessToken,
                    //AccessTokenSecret = _oauthCredentials.AccessTokenSecret,
                    CallbackUri    = CallbackUrl,
                    ConsumerKey    = ConsumerKey,
                    ConsumerSecret = ConsumerSecrect
                };
                //TwitterService.Instance.Initialize(twitterAuth);

                TwitterService.Instance.Initialize(ConsumerKey, ConsumerSecrect, CallbackUrl);

                // Login to Twitter
                if (!await TwitterService.Instance.LoginAsync())
                {
                    Message = "Logon Failed.";

                    return;
                }

                var user = await TwitterService.Instance.GetUserAsync();

                if (user != null)
                {
                    UserScreenName = user.ScreenName;
                    UserImage      = new Uri(user.ProfileImageUrl);

                    Message = $"Logged in as {user.ScreenName}";
                }
            }
            catch (TwitterException tex)
            {
                if (tex.Errors?.Errors?.Length > 0 && tex.Errors.Errors[0].Code == 89)
                {
                }

                Message = $"Failed to logon: {tex.Message}";
            }
            finally
            {
                IsBusy = false;
            }
        }
        public bool Iniciar(TwitterOAuthTokens oAuthTokens)
        {
            tokens        = oAuthTokens ?? throw new ArgumentNullException(nameof(oAuthTokens));
            isInitialized = true;

            twitterDataProvider = null;

            return(true);
        }
        public TwitterDataProvider(TwitterOAuthTokens tokens)
        {
            _tokens = tokens;
            boveda  = new PasswordVault();

            if (_client == null)
            {
                HttpClientHandler handler = new HttpClientHandler
                {
                    AutomaticDecompression = DecompressionMethods.GZip
                };

                _client = new HttpClient(handler);
            }
        }
        public async Task TestInvalidOAuth()
        {
            var config = new TwitterDataConfig
            {
                QueryType = TwitterQueryType.User,
                Query     = "lumia"
            };

            var tokens = new TwitterOAuthTokens
            {
                ConsumerKey       = "INVALID",
                ConsumerSecret    = "INVALID",
                AccessToken       = "INVALID",
                AccessTokenSecret = "INVALID"
            };

            var dataProvider = new TwitterDataProvider(tokens);

            await ExceptionsAssert.ThrowsAsync <OAuthKeysRevokedException>(async() => await dataProvider.LoadDataAsync(config));
        }
Example #8
0
        public async Task TestInvalidOAuth()
        {
            var config = new TwitterDataConfig
            {
                QueryType = TwitterQueryType.User,
                Query = "lumia"
            };

            var tokens = new TwitterOAuthTokens
            {
                ConsumerKey = "INVALID",
                ConsumerSecret = "INVALID",
                AccessToken = "INVALID",
                AccessTokenSecret = "INVALID"
            };

            var dataProvider = new TwitterDataProvider(tokens);

            await ExceptionsAssert.ThrowsAsync<OAuthKeysRevokedException>(async () => await dataProvider.LoadDataAsync(config));
        }