// This URL is registered as the application's callback under Twitter's DEV API
        public ActionResult TwitterSignInCallback(string oauth_token, string oauth_verifier)
        {
            var requestToken = new OAuthRequestToken {
                Token = oauth_token
            };

            // Exchange the Request Token for an Access Token
            TwitterService   twitterService = new TwitterService(OAuthAPIKey, OAuthAPISecret);
            OAuthAccessToken accessToken    = twitterService.GetAccessToken(requestToken, oauth_verifier);

            // User authenticates using the Access Token
            twitterService.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);
            TwitterUser user = twitterService.VerifyCredentials(new VerifyCredentialsOptions()
            {
            });
            bool successfulLogin = user != null;

            FormsAuthentication.SetAuthCookie(user.ScreenName, false);

            if (successfulLogin)
            {
                return(RedirectToAction("Index", "Home", new { userName = user.ScreenName }));
            }

            return(RedirectToAction("Index", "Home"));
        }
Exemplo n.º 2
0
    public void Login(String username, String password)
    {
        Uri             uri                = service.GetAuthorizationUri(requestToken);
        CookieContainer cookieContainer    = new CookieContainer();
        String          response           = HttpUtil.GetResponseString(uri, cookieContainer);
        int             startIndex         = response.IndexOf("authenticity_token\" type=\"hidden\" value=\"") + 41;
        int             endIndex           = response.IndexOf("\"", startIndex + 1);
        String          authenticity_token = response.Substring(startIndex, endIndex - startIndex);

        startIndex = response.IndexOf("name=\"oauth_token\" type=\"hidden\" value=\"") + 40;
        endIndex   = response.IndexOf("\"", startIndex + 1);
        String oauth_token = response.Substring(startIndex, endIndex - startIndex);
        String postData    = "authenticity_token=" + authenticity_token +
                             "&oauth_token=" + oauth_token +
                             "&session%5Busername_or_email%5D=" + username +
                             "&session%5Bpassword%5D=" + password;

        response = HttpUtil.GetResponseString(new Uri("https://api.twitter.com/oauth/authorize"), postData, cookieContainer);
        if (response.Contains("Invalid user name or password"))
        {
            return;
        }
        startIndex = response.IndexOf("<code>") + 6;
        endIndex   = response.IndexOf("</code>");
        String           pin    = response.Substring(startIndex, endIndex - startIndex);
        OAuthAccessToken access = service.GetAccessToken(requestToken, pin);

        service.AuthenticateWith(access.Token, access.TokenSecret);
    }
Exemplo n.º 3
0
        public OAuthAccessToken getAccessTokens(UserContext userContext)
        {
            oAuthAccessTokenManagementService = new OAuthAccessTokenManagementServiceService();
            string soapServer = CurrentValues.Instance.YodleeSoapServer;

            oAuthAccessTokenManagementService.Url = soapServer + "/OAuthAccessTokenManagementService_11_1";
            long?applicationId = (long)CurrentValues.Instance.YodleeBridgetApplicationId;

            try
            {
                OAuthAccessToken authAccessToken = oAuthAccessTokenManagementService.getOAuthAccessToken(userContext, applicationId, true);
                if (authAccessToken != null && authAccessToken.token != null && authAccessToken.tokenSecret != null)
                {
                    log.InfoFormat("Successfully received access token. Access Token:{0}. Access Token Secret:{1}. Token Creation Time:{2}",
                                   authAccessToken.token, authAccessToken.tokenSecret, authAccessToken.tokenCreationTime);
                    return(authAccessToken);
                }

                log.ErrorFormat("Received null access token. authAccessToken:{0} authAccessToken.token:{1} authAccessToken.tokenSecret:{2}",
                                authAccessToken == null ? "null" : authAccessToken.ToString(),
                                authAccessToken == null || authAccessToken.token == null ? "null" : authAccessToken.token,
                                authAccessToken == null || authAccessToken.tokenSecret == null ? "null" : authAccessToken.tokenSecret);
            }
            catch (Exception e)
            {
                log.ErrorFormat("Exception while getting access token. Maybe the application id is invalid. Application id:{0} Exception:{1}", applicationId, e);
            }
            return(null);
        }
        private void DownloadLocker(string username, OAuthAccessToken userAuthenticationDetails)
        {
            var lockerStats    = _lockerRetrieval.GetLockerStats(userAuthenticationDetails);
            var lockerReleases = _lockerRetrieval.GetLockerReleases(userAuthenticationDetails, lockerStats);

            SetLockerCacheItems(username, lockerReleases, lockerStats);
        }
Exemplo n.º 5
0
 private void GetToken()
 {
     access            = service.GetAccessToken(requestToken, verifier);
     AccessToken       = access.Token;
     AccessTokenSecret = access.TokenSecret;
     service.AuthenticateWith(access.Token, access.TokenSecret);
 }
Exemplo n.º 6
0
        public ActionResult TwitterCallback(string oauth_token, string oauth_verifier)
        {
            var requestToken = new OAuthRequestToken {
                Token = oauth_token
            };

            string key    = "W7nisP4ZK14FeeTu5sn5Q9z3c";
            string secret = "F2kQSgBgFceir7B3UD0RODZSOvi7QDUdyU1quHh664cbxXhB9T";

            try
            {
                TwitterService   service     = new TwitterService(key, secret);
                OAuthAccessToken accessToken = service.GetAccessToken(requestToken, oauth_verifier);
                service.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);
                VerifyCredentialsOptions option = new VerifyCredentialsOptions();

                TwitterUser user = service.VerifyCredentials(option);
                TempData["Name"]    = user.Name;
                TempData["userpic"] = user.ProfileImageUrl;
                return(View());
            }
            catch (System.Exception)
            {
                throw;
            }
        }
Exemplo n.º 7
0
        public void ProcessRequest(HttpContext context)
        {
            //get parameters
            string oauth_token    = context.Request.Params["oauth_token"];
            string oauth_verifier = context.Request.Params["oauth_verifier"];

            var requestToken = new OAuthRequestToken {
                Token = oauth_token
            };

            // Step 3 - Exchange the Request Token for an Access Token
            Global.TwitterService = new TwitterService(Global.TwitterConsumerKey, Global.TwitterConsumerSecret);
            OAuthAccessToken accessToken = Global.TwitterService.GetAccessToken(requestToken, oauth_verifier);

            // Step 4 - User authenticates using the Access Token
            Global.TwitterService.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);
            TwitterUser user = Global.TwitterService.VerifyCredentials(new VerifyCredentialsOptions());

            //var sessionProps = (SessionProperties) context.Session["sessionProps"];
            //sessionProps.TwitterAccessToken = accessToken.Token;
            //sessionProps.TwitterAccessTokenSecret = accessToken.TokenSecret;

            Parameters.Instance.TwitterAccessToken       = accessToken.Token;
            Parameters.Instance.TwitterAccessTokenSecret = accessToken.TokenSecret;

            //service.SendTweet(new SendTweetOptions(){Status = "Testing twitter function. Carrry on"});
            context.Response.Redirect("../AdminMain.aspx");
        }
        public void GetTweetsMentioningMe_ShouldReturnTweetsWithMentions()
        {
            List <TwitterStatus> twitterStatuses = Builder <TwitterStatus>
                                                   .CreateListOfSize(2)
                                                   .WhereAll()
                                                   .Have(ts => ts.User = Builder <TwitterUser> .CreateNew().Build())
                                                   .Build()
                                                   .ToList();

            OAuthAccessToken accessToken = new OAuthAccessToken {
                Token = "abcd", TokenSecret = "A@c#"
            };

            Mock.Get(_mockTwitterService).Setup(mockService => mockService.AuthenticateWith(accessToken.Token, accessToken.TokenSecret));

            Mock.Get(_mockTwitterService).Setup(mockService => mockService.ListTweetsMentioningMe()).Returns(
                twitterStatuses);

            GetTweetResponse response = _authenticationService.GetTweetsMentioningMe(accessToken);

            Mock.Get(_mockTwitterService).VerifyAll();

            Assert.IsNotNull(response);
            Assert.AreEqual(2, response.TweeterStatuses.Count());
        }
Exemplo n.º 9
0
        /// <summary>
        /// Load page with query string of Flickr and get logged user
        /// </summary>
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                // Verify if query string contains authentication values
                if (Request.QueryString["oauth_verifier"] != null && Session["RequestToken"] != null)
                {
                    Flickr            flickr       = FlickrManager.GetInstance();
                    OAuthRequestToken requestToken = Session["RequestToken"] as OAuthRequestToken;
                    try
                    {
                        OAuthAccessToken accessToken = flickr.OAuthGetAccessToken(requestToken, Request.QueryString["oauth_verifier"]);
                        FlickrManager.OAuthToken = accessToken;
                    }
                    catch (OAuthException)
                    {
                        Debug.Write("[ERROR] - Error to get Flickr access token.");
                    }
                }

                // Verify if not post back
                if (!Page.IsPostBack)
                {
                    SetLogged();
                }
            }
            catch (System.Exception)
            {
                ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "alert", "alert('Ocorreu um erro ao carregar as fotos.');", true);
            }
        }
Exemplo n.º 10
0
        void LoadPreference(string key)
        {
            switch (key)
            {
            case SCALE_KEY:
                scale_check.Active = Preferences.Get <bool> (key);
                break;

            case SIZE_KEY:
                size_spin.Value = (double)Preferences.Get <int> (key);
                break;

            case BROWSER_KEY:
                open_check.Active = Preferences.Get <bool> (key);
                break;

            case TAGS_KEY:
                tag_check.Active = Preferences.Get <bool> (key);
                break;

            case TAG_HIERARCHY_KEY:
                hierarchy_check.Active = Preferences.Get <bool> (key);
                break;

            case IGNORE_TOP_LEVEL_KEY:
                ignore_top_level_check.Active = Preferences.Get <bool> (key);
                break;

            case FlickrRemote.TOKEN_FLICKR:
            case FlickrRemote.TOKEN_23HQ:
            case FlickrRemote.TOKEN_ZOOOMR:
                token             = new OAuthAccessToken();
                token.Token       = Preferences.Get <string> (key);
                token.TokenSecret = Preferences.Get <string> (key + "secret");
                token.UserId      = Preferences.Get <string> (key + "userId");
                token.Username    = Preferences.Get <string> (key + "userName");
                break;

            case PUBLIC_KEY:
                public_radio.Active = Preferences.Get <bool> (key);
                break;

            case FAMILY_KEY:
                family_check.Active = Preferences.Get <bool> (key);
                break;

            case FRIENDS_KEY:
                friend_check.Active = Preferences.Get <bool> (key);
                break;

                /*
                 * case Preferences.EXPORT_FLICKR_EMAIL:
                 *
                 * /*
                 * case Preferences.EXPORT_FLICKR_EMAIL:
                 * email_entry.Text = (string) val;
                 * break;
                 */
            }
        }
        public void GetTweetsSince_ShouldReturnTweetsSinceTweetId()
        {
            List <TwitterStatus> twitterStatuses = Builder <TwitterStatus>
                                                   .CreateListOfSize(2)
                                                   .WhereAll()
                                                   .Have(ts => ts.User = Builder <TwitterUser> .CreateNew().Build())
                                                   .Build()
                                                   .ToList();

            OAuthAccessToken accessToken = new OAuthAccessToken {
                Token = "abcd", TokenSecret = "A@c#"
            };

            Mock.Get(_mockTwitterService).Setup(mockService => mockService.AuthenticateWith(accessToken.Token, accessToken.TokenSecret));

            Mock.Get(_mockTwitterService).Setup(mockService => mockService.ListTweetsOnHomeTimelineSince(100)).Returns(
                twitterStatuses);

            GetTweetsRequest getTweetsRequest = new GetTweetsRequest {
                AccessToken = accessToken, LastTweetId = 100
            };
            GetTweetResponse response = _authenticationService.GetTweetsSince(getTweetsRequest);

            Mock.Get(_mockTwitterService).VerifyAll();

            Assert.IsNotNull(response);
            Assert.AreEqual(2, response.TweeterStatuses.Count());
        }
        public bool FlickrAuthenticate()
        {
            Logger.Debug("Authenticating...");

            if (OAuthToken?.Token == null)
            {
                ConsoleHelper.WriteInfoLine("Requesting access token...");

                var flickr = GetInstance();
                OAuthRequestToken requestToken = flickr.OAuthGetRequestToken("oob");

                var url = flickr.OAuthCalculateAuthorizationUrl(requestToken.Token, AuthLevel.Write);

                Process.Start(url);

                ConsoleHelper.WriteInfo("Verifier: ");
                var verifier = Console.ReadLine();

                OAuthToken = flickr.OAuthGetAccessToken(requestToken, verifier);
            }

            if (OAuthToken == null)
            {
                Logger.Error("Could not authenticate.");
                return(true);
            }

            Logger.Info("Authenticated as " + OAuthToken.FullName + ".");

            Uploader.UserId = OAuthToken.UserId;
            Uploader.Flickr = GetAuthInstance();
            return(false);
        }
        public IHttpActionResult TwitterCallback(string oauth_token, string oauth_verifier)
        {
            var requestToken = new OAuthRequestToken {
                Token = oauth_token
            };
            string Key    = "jvy2ZXkqWH6KAPzycTtoMnzgA";
            string Secret = "ApD4fROU3DM8tzdfytZFJOkrQfq0H1Ga6i6yOFH0hXpCgbtntR";

            try
            {
                TwitterService service = new TwitterService(Key, Secret);
                //get Access tocken
                OAuthAccessToken accessToken = service.GetAccessToken(requestToken, oauth_verifier);
                service.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);

                //for getting user Profile
                var profile = service.GetUserProfile(new GetUserProfileOptions {
                    IncludeEntities = true
                });

                VerifyCredentialsOptions option = new VerifyCredentialsOptions();

                TwitterUser user = service.VerifyCredentials(option);
                //TempData["Name"] = user.Name;
                //TempData["Userpic"] = user.ProfileImageUrl;
                //string u= user.Name;
                //return Ok();
                //return Redirect("http://localhost:4200"+u);
                return(Redirect("http://localhost:4200"));
            }
            catch
            {
                throw;
            }
        }
Exemplo n.º 14
0
        public IHttpActionResult TwitterCallbackFunc(OAuthData oAuth_Data)
        {
            var requestToken = new OAuthRequestToken {
                Token = oAuth_Data.oauth_token
            };

            string Key    = "I4ObconJp84KE97TpZLxmtfOz";
            string Secret = "fuYsBswujZu438WDWVNFvGoj45oszq7YfnKjclX7spqxmNdZB9";

            try
            {
                TwitterService service = new TwitterService(Key, Secret);

                //Get Access Tokens
                OAuthAccessToken accessToken =
                    service.GetAccessToken(requestToken, oAuth_Data.oauth_verifier);

                service.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);

                VerifyCredentialsOptions option = new VerifyCredentialsOptions();

                //According to Access Tokens get user profile details
                TwitterUser user = service.VerifyCredentials(option);

                //return View();
                //return RedirectToAction("Index", "Home");
                //Redirect("~/Index.html");

                return(Ok(user));
            }
            catch
            {
                throw;
            }
        }
Exemplo n.º 15
0
        static void Main(string[] args)
        {
            OAuthAccessToken accessToken = new OAuthAccessToken();

            accessToken.AccessToken = "Test LGTM Dotnet Core 3.0";
            Console.WriteLine(accessToken.AccessToken);
        }
Exemplo n.º 16
0
        private async void PageRootLoaded(object sender, RoutedEventArgs e)
        {
            if (AccessToken != null)
            {
                return;
            }

            var f            = new Flickr("dbc316af64fb77dae9140de64262da0a", "0781969a058a2745");
            var requestToken = await GetRequestToken();

            string output;
            var    flickrUri = new Uri(f.OAuthCalculateAuthorizationUrl(requestToken.Token, AuthLevel.Delete));
            var    webAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync(
                WebAuthenticationOptions.None,
                flickrUri);

            if (webAuthenticationResult.ResponseStatus == WebAuthenticationStatus.Success)
            {
                output      = webAuthenticationResult.ResponseData;
                AccessToken = await f.OAuthAccessTokenAsync(requestToken.Token, requestToken.TokenSecret, output);

                LoadDataSource(AccessToken);
            }
            else if (webAuthenticationResult.ResponseStatus == WebAuthenticationStatus.ErrorHttp)
            {
                output = "HTTP Error returned by AuthenticateAsync() : " + webAuthenticationResult.ResponseErrorDetail.ToString();
            }
            else if (webAuthenticationResult.ResponseStatus == WebAuthenticationStatus.UserCancel)
            {
                output = "Authentication process was cancelled by the user";
            }
        }
Exemplo n.º 17
0
        private async void LoadDataSource(OAuthAccessToken accessToken)
        {
            var f = new Flickr("dbc316af64fb77dae9140de64262da0a", "0781969a058a2745")
            {
                OAuthAccessToken       = accessToken.Token,
                OAuthAccessTokenSecret = accessToken.TokenSecret
            };

            var groups = DefaultViewModel["Groups"] as ObservableCollection <SampleDataGroup>;

            groups.Clear();
            var photostreamGroup = new SampleDataGroup("A", "Your Photos", "Photostream", "", "");

            groups.Add(photostreamGroup);

            var contactsGroup = new SampleDataGroup("A", "Your Contact", "Latest Updates", "", "");

            groups.Add(contactsGroup);

            var favouritesGroup = new SampleDataGroup("A", "Your Favourites", "Favourite Photos", "", "");

            groups.Add(favouritesGroup);

            var photos = await f.PeopleGetPhotosAsync(accessToken.UserId, SafetyLevel.None, null, null, null, null,
                                                      ContentTypeSearch.None, PrivacyFilter.None,
                                                      PhotoSearchExtras.Description | PhotoSearchExtras.LargeUrl, 1,
                                                      30);

            foreach (
                var photo in
                photos.Select(
                    p => new SampleDataItem(p.PhotoId, p.Title, "", p.LargeUrl, p.Description, p.Description, photostreamGroup))
                )
            {
                photostreamGroup.Items.Add(photo);
            }

            photos =
                await f.PhotosGetContactsPhotosAsync(extras : PhotoSearchExtras.Description | PhotoSearchExtras.LargeUrl | PhotoSearchExtras.OwnerName);

            foreach (
                var photo in
                photos.Select(
                    p => new SampleDataItem(p.PhotoId, p.Title, p.OwnerName, p.LargeUrl, p.Description, p.Description, contactsGroup))
                )
            {
                contactsGroup.Items.Add(photo);
            }

            photos = await f.FavoritesGetListAsync(extras : PhotoSearchExtras.Description | PhotoSearchExtras.LargeUrl | PhotoSearchExtras.OwnerName);

            foreach (
                var photo in
                photos.Select(
                    p => new SampleDataItem(p.PhotoId, p.Title, p.OwnerName, p.LargeUrl, p.Description, p.Description, favouritesGroup))
                )
            {
                favouritesGroup.Items.Add(photo);
            }
        }
Exemplo n.º 18
0
        public bool ValidateToken(string txt)
        {
            if (String.IsNullOrEmpty(txt))
            {
                MessageBox.Show("You must paste the verifier code into the textbox above.");
                return(false);
            }

            Flickr f = Managers.Instance.flicker.flickr;

            try
            {
                accessToken        = f.OAuthGetAccessToken(requestToken, txt);
                f.OAuthAccessToken = accessToken.Token;
                Managers.Instance.user.UserName  = accessToken.FullName;
                Managers.Instance.user.Token     = accessToken.Token;
                Managers.Instance.user.Connected = true;
                MessageBox.Show("Successfully authenticated as " + accessToken.FullName);
                Managers.Instance.cache.LoadFavorite();
            }
            catch (FlickrApiException ex)
            {
                MessageBox.Show("Failed to get access token. Error message: " + ex.Message);
                return(false);
            }
            return(true);
        }
Exemplo n.º 19
0
        public async Task <OAuthAccessToken> RefreshToken(OAuthAccessToken token)
        {
            var response = await _httpClient.Client.PostAsync(AuthCompleteEndpoint, new FormUrlEncodedContent(new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("grant_type", "refresh_token"),
                new KeyValuePair <string, string>("refresh_token", token.RefreshToken),
                new KeyValuePair <string, string>("client_id", _appId),
                new KeyValuePair <string, string>("client_secret", _clientSecret)
            }));

            if (!response.IsSuccessStatusCode)
            {
                if (response.StatusCode == HttpStatusCode.Unauthorized)
                {
                    throw new UnauthorizedAccessException($"Was not allowed to refresh token");
                }

                throw new Exception("Could not refresh token");
            }

            var jsonStr = await response.Content.ReadAsStringAsync();

            var newToken = JsonConvert.DeserializeObject <OAuthAccessToken>(jsonStr);

            return(newToken);
        }
Exemplo n.º 20
0
        /// <summary>
        /// Fetch some user info and update this on to the UI
        /// </summary>
        /// <param name="accessToken"></param>
        private void GetUserInfo(OAuthAccessToken accessToken)
        {
            try
            {
                service.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);

                GetUserProfileOptions userInfo = new GetUserProfileOptions()
                {
                    IncludeEntities = true,
                    SkipStatus      = false
                };

                var result = service.BeginGetUserProfile(userInfo);
                var user   = service.EndGetUserProfile(result);

                var imgUrlString = user.ProfileImageUrlHttps;
                if (imgUrlString.Contains("normal", StringComparison.OrdinalIgnoreCase))
                {
                    // To get a bigger image. Refer to https://developer.twitter.com/en/docs/accounts-and-users/user-profile-images-and-banners
                    imgUrlString = imgUrlString.Replace("normal", "bigger", StringComparison.OrdinalIgnoreCase);
                }

                twitterUserInfo              = new TwitterUserInfo();
                twitterUserInfo.Id           = user.Id.ToString();
                twitterUserInfo.Screen_name  = user.ScreenName;
                twitterUserInfo.profileImage = imgUrlString;

                this.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
        public void SendTweet_ShouldUpdateTheUserStatus_AndReturnNewTweeterStatusTest()
        {
            OAuthAccessToken accessToken = new OAuthAccessToken {
                Token = "abcd", TokenSecret = "A@c#"
            };

            Mock.Get(_mockTwitterService).Setup(mockService => mockService.AuthenticateWith(accessToken.Token, accessToken.TokenSecret));

            SendTweetRequest request = new SendTweetRequest {
                AccessToken = accessToken, Status = "Hello World"
            };

            TwitterStatus twitterStatusStatus =
                Builder <TwitterStatus>
                .CreateNew()
                .With(x => x.Text = request.Status)
                .With(x => x.User = Builder <TwitterUser> .CreateNew().Build())
                .Build();

            Mock.Get(_mockTwitterService).Setup(mockService => mockService.SendTweet(request.Status)).Returns(twitterStatusStatus);

            SendTweetResponse sendTweetResponse = _authenticationService.SendTweet(request);

            Assert.IsNotNull(sendTweetResponse);
            Assert.AreSame(request.Status, sendTweetResponse.TweeterStatus.Tweet);
        }
Exemplo n.º 22
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // The request token is stored in session - if it isn't present then we do nothing
            if (Request.QueryString["oauth_verifier"] != null && Session["RequestToken"] != null)
            {
                Flickr            f            = FlickrManager.GetInstance();
                OAuthRequestToken requestToken = Session["RequestToken"] as OAuthRequestToken;
                try
                {
                    OAuthAccessToken accessToken = f.OAuthGetAccessToken(requestToken,
                                                                         Request.QueryString["oauth_verifier"]);
                    FlickrManager.OAuthToken = accessToken;

                    ResultsLabel.Text    = "You successfully authenticated as " + accessToken.FullName;
                    ResultPanel.CssClass = "alert alert-success";
                    ResultPanel.Visible  = true;
                }
                catch (OAuthException ex)
                {
                    ResultsLabel.Text    = "An error occurred retrieving the token : " + ex.Message;
                    ResultPanel.CssClass = "alert alert-danger";
                    ResultPanel.Visible  = true;
                }
            }
        }
Exemplo n.º 23
0
        public async Task <IActionResult> AuthorizeAsync(string appId, string code, string returnUrl)
        {
            if (string.IsNullOrWhiteSpace(code) || string.IsNullOrWhiteSpace(returnUrl))
            {
                return(NotFound());
            }

            string secret = ConfigCenterClient.GetSection("WeChatAccount").GetValue <string>(appId, null);

            if (secret == null)
            {
                return(NotFound());
            }

            OAuthAccessToken accessTokenResponse = await GetAccessTokenAsync(appId, secret, code);

            OAuthUserInfo userInfo = new OAuthUserInfo
            {
                OpenId = accessTokenResponse?.OpenId
            };

            if (accessTokenResponse != null && accessTokenResponse.Scope.Contains("snsapi_userinfo"))
            {
                userInfo = await GetUserInfoAsync(accessTokenResponse.AccessToken, accessTokenResponse.AccessToken);
            }

            returnUrl = HttpUtility.UrlDecode(returnUrl);
            string userInfoParams = accessTokenResponse.Scope.Contains("snsapi_userinfo") ? $"nickname={ HttpUtility.UrlEncode(userInfo.Nickname) }&headimgurl={ HttpUtility.UrlEncode(userInfo.HeadImgUrl) }" : string.Empty;

            return(Redirect($"{ returnUrl }{ (returnUrl.Contains("?") ? "&" : "?") }openId={ userInfo.OpenId }&{ userInfoParams }"));
        }
Exemplo n.º 24
0
        /// <summary>
        /// 成功登陆
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
        {
            if (webBrowser1.DocumentText.IndexOf("oauth_verifier") > -1)
            {
                //取得OauthVerify
                int    startIndex = webBrowser1.DocumentText.IndexOf("oauth_verifier");
                int    endIndex   = webBrowser1.DocumentText.IndexOf('\"', startIndex);
                string verifier   = webBrowser1.DocumentText.Substring(startIndex + 15, endIndex - startIndex - 15);

                OAuthAccessToken accessToken = twitterService.GetAccessToken(requestToken, verifier);
                if (accessToken != null)
                {
                    twitterService.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);
                    ButtonStateNext |= WizardButtonState.Enabled;
                    ParentWizardForm.UpdateWizardForm(this);
                }
                else
                {
                    ButtonStateNext = WizardButtonState.Visible;
                }
            }
            else
            {
                ButtonStateNext = WizardButtonState.Visible;
            }
        }
Exemplo n.º 25
0
        public void Can_make_xauth_request()
        {
            TwitterService   service = new TwitterService(_consumerKey, _consumerSecret);
            OAuthAccessToken access  = service.GetAccessTokenWithXAuth("username", "password");

            Assert.Ignore("Test account isn't authorized for xAuth");
        }
        private async Task <OAuthAccessToken> WaitAndThenRefreshAsync(
            OAuthAccessToken token,
            CancellationToken cancellationToken,
            Func <OAuthAccessToken, Task <OAuthAccessToken> > refreshToken)
        {
            var auditItem = _refreshAudit.CreateAuditEntry(token);

            await WaitForRefreshTimeAsync(token, cancellationToken, auditItem);

            if (!cancellationToken.IsCancellationRequested)
            {
                _refreshAudit.RefreshStarted(auditItem);

                OAuthAccessToken newToken = await TryRefreshUntilCancelledOrSuccess(
                    auditItem,
                    token,
                    cancellationToken,
                    refreshToken);

                _refreshAudit.RefreshEnded(auditItem);
                return(newToken);
            }

            return(null);
        }
Exemplo n.º 27
0
        /// <summary>
        /// Confirm pin input
        /// </summary>
        private void btnSubmit_Click(object sender, RoutedEventArgs e)
        {
            // Step 3 - Exchange the Request Token for an Access Token
            string           verifier = txtPin.Text; // <-- This is input into your application by your user
            OAuthAccessToken access   = service.GetAccessToken(requestToken, verifier);

            // Step 4 - User authenticates using the Access Token
            service.AuthenticateWith(access.Token, access.TokenSecret);

            // Save tokens to file for faster login the next time
            using (XmlWriter writer = XmlWriter.Create(ConfigurationManager.AppSettings["LoginDataFile"]))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("logindata");
                writer.WriteStartElement("token");
                writer.WriteString(access.Token);
                writer.WriteEndElement();
                writer.WriteStartElement("tokenSecret");
                writer.WriteString(access.TokenSecret);
                writer.WriteEndElement();
                writer.WriteEndElement();
                writer.WriteEndDocument();
            }

            MoveToMain();
        }
Exemplo n.º 28
0
 void Logout()
 {
     token = null;
     fr    = new FlickrRemote(token, current_service);
     Preferences.Set(current_service.PreferencePath, string.Empty);
     CurrentState = State.Disconnected;
 }
Exemplo n.º 29
0
    /// <summary>
    /// 创建菜单
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnCreate_Click(object sender, EventArgs e)
    {
        string        userName = lbPublicAccount.SelectedValue;
        MenuContainer mc1      = MenuHelper.CreateContainer("自在饭");

        mc1.Add(MenuHelper.CreateItem(MenuTypeEnum.click, "关于", "about"));
        mc1.Add(MenuHelper.CreateItem(MenuTypeEnum.view, "官网", "http://www.zizaifan.com"));
        mc1.Add(MenuHelper.CreateItem(MenuTypeEnum.location_select, "方位", "location"));
        mc1.Add(MenuHelper.CreateItem(MenuTypeEnum.view, "网页授权", OAuthAccessToken.GetOAuthUrl(userName, "http://www.zizaifan.com/OAuth.aspx", OAuthScopeEnum.snsapi_userinfo, "oauth")));
        MenuContainer mc2 = MenuHelper.CreateContainer("扫描");

        mc2.Add(MenuHelper.CreateItem(MenuTypeEnum.scancode_push, "扫码推", "push"));
        mc2.Add(MenuHelper.CreateItem(MenuTypeEnum.scancode_waitmsg, "接收扫码", "waitmsg"));
        MenuContainer mc3 = MenuHelper.CreateContainer("发图");

        mc3.Add(MenuHelper.CreateItem(MenuTypeEnum.pic_sysphoto, "拍照发图", "sysphoto"));
        mc3.Add(MenuHelper.CreateItem(MenuTypeEnum.pic_photo_or_album, "拍照或相册发图", "photo_or_album"));
        mc3.Add(MenuHelper.CreateItem(MenuTypeEnum.pic_weixin, "微信发图", "weixin"));
        mc3.Add(MenuHelper.CreateItem(MenuTypeEnum.view, "JS-SDK", "http://www.zizaifan.com/wechat.aspx"));
        ErrorMessage errorMessage = MenuHelper.Create(userName, new BaseMenu[] { mc1, mc2, mc3 });

        ltrMessage.Text = string.Format("创建菜单{0}。{1}",
                                        errorMessage.IsSuccess ? "成功" : "失败",
                                        errorMessage.IsSuccess ? "" : errorMessage.ToString());
    }
Exemplo n.º 30
0
 public CDB(string apiKey, string sharedSecret, OAuthAccessToken aToken)
 {
     APIKey       = apiKey;
     SharedSecret = sharedSecret;
     Token        = aToken.Token;
     TokenSecret  = aToken.TokenSecret;
 }
Exemplo n.º 31
0
        public void LoadTweetsFromTimeline_ShouldSetBusyIndicatorAndMakeAServiceCall()
        {
            OAuthAccessToken accessToken = new OAuthAccessToken();

            Mock.Get(_mockApplicationSettingsProvider)
                .SetupGet(m => m["accessToken"])
                .Returns(accessToken);

            Mock.Get(_mockAuthenticationService)
                .Setup(m => m.BeginGetTweetsMentioningMe(accessToken, It.IsAny<AsyncCallback>(), null));

            _viewModel.GetTweetsMentioningMe();

            Assert.IsTrue(_viewModel.IsBusy);

            Mock.Get(_mockAuthenticationService).VerifyAll();
        }
Exemplo n.º 32
0
        public void OnTweetActionCommand_ShouldCallServiceTest()
        {
            viewModel.TweetText = "Hello World";

            OAuthAccessToken accessToken = new OAuthAccessToken();

            Mock.Get(_mockApplicationSettingsProvider)
                .SetupGet(m => m["accessToken"])
                .Returns(accessToken);

            Mock.Get(_mockAuthenticationService).Setup(
                m => m.BeginSendTweet(
                    It.Is<SendTweetRequest>(request => request.AccessToken == accessToken && request.Status == "Hello World"),
                    It.IsAny<AsyncCallback>(),
                    null));

            viewModel.OnTweetActionCommand();

            Assert.IsTrue(viewModel.IsBusy);

            Mock.Get(_mockAuthenticationService).VerifyAll();
        }
Exemplo n.º 33
0
        public void LoadTweetsFromTimeline_WhenThereAreExistingTweets_ShouldSetBusyIndicator_AndMakeAServiceCall_UsingLastTweetIdTest()
        {
            ObservableCollection<NGTweeterStatus> tweeterStatuses = new ObservableCollection<NGTweeterStatus>
                {
                    new NGTweeterStatus
                        {
                            Id = 1001,
                            CreatedDate = new DateTime(2011, 06, 10),
                            Tweet = "Hello",
                            User =
                                new NGTweeterUser
                                    {
                                        Id = 101,
                                        Name = "Nilesh",
                                        ScreenName = "Nileshgule",
                                        ProfileImageUrl = "http://twitter.com/profileImages/nileshgule.jpg"
                                    }
                        }
                };

            _viewModel.AddNewTweets(tweeterStatuses);

            Assert.AreEqual(1, _viewModel.TweeterStatusViewModels.Count);

            OAuthAccessToken accessToken = new OAuthAccessToken();

            Mock.Get(_mockApplicationSettingsProvider)
                .SetupGet(m => m["accessToken"])
                .Returns(accessToken);

            Mock.Get(_mockAuthenticationService).Setup(
                m => m.BeginGetTweetsSince(
                    It.Is<GetTweetsRequest>(request => request.AccessToken == accessToken && request.LastTweetId == 1001),
                    It.IsAny<AsyncCallback>(),
                    null));

            _viewModel.LoadTweetsFromTimeLine();

            Assert.IsTrue(_viewModel.IsBusy);

            Mock.Get(_mockAuthenticationService).VerifyAll();
            Mock.Get(_mockApplicationSettingsProvider).VerifyAll();
        }
Exemplo n.º 34
0
        private void HandleAuthenticationAccessToken(OAuthAccessToken token, TwitterResponse response)
        {
            _accessToken = token;

            Dispatcher.BeginInvoke(
                ()=>
                    {
                        _browser.Visibility = Visibility.Visible;
                        _tweets.Visibility = Visibility.Collapsed;            
                    }
            );

            ServiceExample();
        }