Ejemplo n.º 1
0
        private async void AuthorizeAsync(object sender, RoutedEventArgs e)
        {
            ShowStatus("認証しています...");

            var token = await session.GetTokensAsync(Pin.Text);

            var credentials = new Credentials()
            {
                AccessToken  = token.AccessToken,
                AccessSecret = token.AccessTokenSecret
            };

            await Task.Run(() =>
            {
                var json   = JsonConvert.SerializeObject(credentials);
                var writer = File.CreateText(MainWindow.location + @"\credentials.json");

                writer.Write(json);
                writer.Close();
            });

            CloseStatus(async() =>
            {
                ShowStatus("認証しました。", false);
                await Task.Run(() => Thread.Sleep(1000));
                CloseStatus();
                Close();
            });
        }
        /// <summary>
        /// 認証ボタンのクリックハンドラ
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void authButton_Click(object sender, RoutedEventArgs e)
        {
            var bindings = DataContext as db;

            code = pin.Text;
            try
            {
                tokens = await session.GetTokensAsync(code);
            }
            catch (TwitterException ex)
            {
                MessageBox.Show("エラーが発生しました、もう一度やり直してください\n" + ex.Message,
                                "info", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            catch (WebException ex)
            {
                MessageBox.Show("エラーが発生しました、もう一度やり直してください\n" + ex.Message,
                                "info", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            Settings.Default.token  = tokens.AccessToken;
            Settings.Default.secret = tokens.AccessTokenSecret;
            Settings.Default.Save();
            Close();
        }
        private async void OnSubmit()
        {
            IsProcessing = true;
            this.Message = Properties.Resources.TwitterSingin_Authentication;

            var tokensAsync = _oAuthSession.GetTokensAsync(PinCode);

            try
            {
                await tokensAsync;

                var tokens = tokensAsync.Result;
                if (tokens == null)
                {
                    throw new NullReferenceException("token is null.");
                }

                var twitterUser       = new TwitterUser(tokens);
                var twitterRepository = ServiceLocator.Instance.GetInstance <TwitterRepository>();
                twitterRepository.Save(twitterUser);
                _callback.Invoke(twitterUser);
                CloseAction();
            }
            catch (TwitterException)
            {
                PinCode = "";
                Message = Properties.Resources.TwitterSingin_FailedAuth;
            }
            finally
            {
                IsProcessing = false;
            }
        }
Ejemplo n.º 4
0
        public async Task <bool> SaveToken(string pinCode)
        {
            try
            {
                AppStaticVariables.Tokens = await session.GetTokensAsync(pinCode);

                return(true);
            }
            catch (Exception) {
                return(false);
            }
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> AuthComplete([FromBody] TokenRequest request)
        {
            var session = new OAuth.OAuthSession
            {
                ConsumerKey        = twitterOptions.ClientId,
                ConsumerSecret     = twitterOptions.ClientSecret,
                RequestToken       = request.RequestToken,
                RequestTokenSecret = request.RequestTokenSecret
            };

            var tokens = await session.GetTokensAsync(request.PinCode);

            return(Ok(new
            {
                tokens.AccessToken,
                tokens.AccessTokenSecret
            }));
        }
Ejemplo n.º 6
0
        public async Task <bool> AuthorizeAsync()
        {
            //ここまで実装した。
            //エラー処理とか、トークンつかった処理とかかこう。
            try
            {
                tokens.Token = await session.GetTokensAsync(Text.Value);

                await tokens.SetTokensAsync();

                return(true);
            }
            catch
            {
                tokens.Token = null;
                return(false);
            }
        }
Ejemplo n.º 7
0
            public async Task Token(TokenArguments arguments)
            {
                var requestToken = ReadToken(arguments.RequestToken, ".twitterToken", nameof(arguments.RequestToken));

                var requestTokenSecret = ReadToken(arguments.RequestTokenSecret, ".twitterSecret", nameof(arguments.RequestTokenSecret));

                var session = new OAuth.OAuthSession
                {
                    ConsumerKey        = arguments.ClientId,
                    ConsumerSecret     = arguments.ClientSecret,
                    RequestToken       = requestToken,
                    RequestTokenSecret = requestTokenSecret
                };

                var tokens = await session.GetTokensAsync(arguments.PinCode);

                Console.WriteLine($"Access Token:  {tokens.AccessToken}");
                Console.WriteLine($"Access Secret: {tokens.AccessTokenSecret}");
            }
        private async void GetTokens(NameValueCollection query)
        {
            try
            {
                TokenStore.Tokens = await _session.GetTokensAsync(query["oauth_verifier"]);

                var userDefaults = NSUserDefaults.StandardUserDefaults;
                userDefaults.SetString(TokenStore.Tokens.AccessToken, Config.CONFIG_TOKEN);
                userDefaults.SetString(TokenStore.Tokens.AccessTokenSecret, Config.CONFIG_SECRET);
                Console.WriteLine(userDefaults.Synchronize());

                CloseSheet();
            }
            catch (Exception ex)
            {
                new NSAlert {
                    MessageText = ex.Message
                }.RunSheetModal(View.Window);
                BrowseAuthorizeView();
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 認証ボタンのクリックハンドラ
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void authButton_Click(object sender, RoutedEventArgs e)
        {
            var bindings = DataContext as db;

            _code = pin.Text;
            try
            {
                _tokens = await _session.GetTokensAsync(_code);
            }
            catch (TwitterException ex)
            {
                new TaskDialog
                {
                    Caption         = "Auth Error",
                    InstructionText = Properties.Resources.ErrorPrRetry,
                    Text            = ex.Message,
                    Icon            = TaskDialogStandardIcon.Error
                }.Show();
                return;
            }
            catch (WebException ex)
            {
                new TaskDialog
                {
                    Caption         = "Network Error",
                    InstructionText = Properties.Resources.ErrorPrRetry,
                    Text            = ex.Message,
                    Icon            = TaskDialogStandardIcon.Error
                }.Show();
                return;
            }

            Settings.Default.token  = _tokens.AccessToken;
            Settings.Default.secret = _tokens.AccessTokenSecret;
            Settings.Default.Save();
            Close();
        }
        private async void AuthorizePopupAuthorizeButton_Click(object sender, RoutedEventArgs e)
        {
            var pin = AuthorizePopupAuthorizePinTextBox.Text.Trim();

            if (string.IsNullOrWhiteSpace(pin))
            {
                await new MessageDialog(_resourceLoader.GetString("AuthorizePopup_PincodeIsEmpty")).ShowAsync();
                return;
            }

            AuthorizePopupAuthorizeButton.IsEnabled = false;

            if (_authorizeStep == AuthorizeStep.TwitterAuthorize)
            {
                try
                {
                    var tokens = await _twitterOAuthSettion.GetTokensAsync(pin);

                    _accountInfo = new AccountInfo
                    {
                        ConsumerKey       = tokens.ConsumerKey,
                        ConsumerSecret    = tokens.ConsumerSecret,
                        AccessToken       = tokens.AccessToken,
                        AccessTokenSecret = tokens.AccessTokenSecret,
                        ScreenName        = tokens.ScreenName,
                        UserId            = tokens.UserId,
                        Service           = "Twitter",
                        Instance          = ""
                    };
                }
                catch
                {
                    await new MessageDialog(_resourceLoader.GetString("AuthorizePopup_OAuthAuthorizeError"))
                    .ShowAsync();
                    return;
                }
                finally
                {
                    AuthorizePopupAuthorizeButton.IsEnabled = true;
                }
            }
            else if (_authorizeStep == AuthorizeStep.MastodonAuthorize)
            {
                try
                {
                    var auth = await _mastodonOauthSettion.ConnectWithCode(pin);

                    var client = new MastodonClient(_mastodonAppRegistration, auth);
                    var user   = await client.GetCurrentUser();

                    _accountInfo = new AccountInfo
                    {
                        ConsumerKey       = _mastodonAppRegistration.ClientId,
                        ConsumerSecret    = _mastodonAppRegistration.ClientSecret,
                        AccessToken       = auth.AccessToken,
                        AccessTokenSecret = "",
                        ScreenName        = user.UserName,
                        UserId            = user.Id,
                        Service           = "Mastodon",
                        Instance          = _mastodonOauthSettion.Instance
                    };
                }
                catch
                {
                    await new MessageDialog(_resourceLoader.GetString("AuthorizePopup_OAuthAuthorizeError"))
                    .ShowAsync();
                    return;
                }
                finally
                {
                    AuthorizePopupAuthorizeButton.IsEnabled = true;
                }
            }

            _authorizeStep = AuthorizeStep.Exit;
        }
Ejemplo n.º 11
0
/*
 *  private void cancelButton_Click(object sender, RoutedEventArgs e)
 *  {
 *    Properties.Settings.Default.AccessToken = null;
 *
 *    Properties.Settings.Default.AccessTokenSecret = null;
 *
 *    Properties.Settings.Default.ScreenName = null;
 *
 *    Properties.Settings.Default.Save();
 *
 *    var dialog = new ModernDialog1("ユーザ情報を削除しました");
 *    dialog.ShowDialog();
 *  }
 */
        private async void okButton_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(pinTextBox.Text)

                || System.Text.RegularExpressions.Regex.IsMatch(pinTextBox.Text, @"\D"))

            {
                //        MessageBox.Show("Type numeric characters");

                // var dialog = new ModernDialog1("Type numeric characters");
                // dialog.ShowDialog();

                //pinTextBox.Clear();

                return;
            }



            try

            {
                // PIN認証

                //MainWindow2 owner = (MainWindow2)this.Owner;
                //SettingWindow owner = (SettingWindow)this.Owner;

                tokens = await session.GetTokensAsync(pinTextBox.Text);

                // トークン保存

                var settings = ApplicationData.Current.RoamingSettings;
                settings.Values["AccessToken"]       = tokens.AccessToken;
                settings.Values["AccessTokenSecret"] = tokens.AccessTokenSecret;
                settings.Values["ScreenName"]        = tokens.ScreenName;
                settings.Values["UserId"]            = tokens.UserId;

                // 表示調整

                //owner.updatescreennameLabel(owner.tokens.ScreenName);
                var dlg = new MessageDialog("ログインが正常に完了しました.一度このアプリを再起動してください.", "ログインの確認");
                dlg.Commands.Add(new UICommand("はい", (cmd) => {  }));
                await dlg.ShowAsync();


                //  MessageBox.Show("verified: " + tokens.ScreenName);
                //  var dialog = new ModernDialog1("verified: " + tokens.ScreenName + "一旦このアプリを再起動してください。");
                //  dialog.ShowDialog();
                //  pinTextBox.Clear();

                // Close();
            }

            catch (Exception ex)

            {
                // やり直し
                var dlg = new MessageDialog("ログインに問題が発生しました.もう一度試してください.", "ログインの確認");
                dlg.Commands.Add(new UICommand("はい", (cmd) => { }));
                await dlg.ShowAsync();

                //MessageBox.Show(ex.Message);
                //   var dialog = new ModernDialog1(ex.Message);
                //  dialog.ShowDialog();

                //  initAuthrize();
            }
        }