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; } }
public async Task <bool> SaveToken(string pinCode) { try { AppStaticVariables.Tokens = await session.GetTokensAsync(pinCode); return(true); } catch (Exception) { return(false); } }
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 })); }
public async Task <bool> AuthorizeAsync() { //ここまで実装した。 //エラー処理とか、トークンつかった処理とかかこう。 try { tokens.Token = await session.GetTokensAsync(Text.Value); await tokens.SetTokensAsync(); return(true); } catch { tokens.Token = null; return(false); } }
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(); } }
/// <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; }
/* * 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(); } }