C# WPF初心者のCoreTweet入門3 設定ファイル入出力
これはC# WPF初心者のCoreTweet入門2 認証 - 01647に続く記事で,現時点のコードはhttps://gist.github.com/ustreamer-01647/a3c52b6305b2ca938c36/11dd2d13a3c726091965ff66833eb4a24c6d3878
Twitter認証結果を保存して,次回以降は省略できるようにする.実のところ,ファイル入出力操作は,直截的には書かない.C#の機能だかWPFの機能だかに依存して記述する.
ソリューションエクスプローラーのSettings.settingsをダブルクリック
PINで認証した結果のAccess TokenとAccess Token Secretが,このプログラムを利用するツイッタラーの鍵だ.これを保存したいから,stringを2項目作る.プロパティペインでDescription(説明)を書いておく.
MainWindowのプロパティペインでClosingイベントを作る
デザイン画面でMainWindowを選択する.Closing横のテキストボックスをダブルクリックする.MainWindowクラスのメンバ変数tokenが非nullの場合に保存させよう.
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if ( tokens != null) { Properties.Settings.Default.AccessToken = tokens.AccessToken; Properties.Settings.Default.AccessTokenSecret = tokens.AccessTokenSecret; } }
プログラム起動時にトークンを読み込ませる
MainWindowクラスのコンストラクタMainWindow()のInitializeComponent();の後に書く.
// load twitter token if(string.IsNullOrEmpty(Properties.Settings.Default.AccessToken) && string.IsNullOrEmpty(Properties.Settings.Default.AccessTokenSecret)) { tokens = Tokens.Create( ApiKey , ApiSecret , Properties.Settings.Default.AccessToken , Properties.Settings.Default.AccessTokenSecret); }
タイムライン表示を以って動作確認とする
ボタンshowTimelineButtonとテキストボックスtimelineTextboxを追加した.ボタンをダブルクリックして,クリック時処理を記述する.startSettingから開始すると,showTimelineまで問題なかった.
private void showTimelineButton_Click(object sender, RoutedEventArgs e) { timelineTextbox.Clear(); foreach (var status in tokens.Statuses.HomeTimeline()) timelineTextbox.AppendText( string.Format("{0}: {1}{2}", status.User.ScreenName, status.Text, Environment.NewLine)); }
バグフィックス
- load twitter tokenについて,「アクセストークンが無い場合」に読み込む様になっている
- NOTを示す「!」を各条件に追記して解決
- アクセストークンを再利用できない
- 認証後の再起動にて,アクセストークンが空だった
- 設定ファイルを読み込めていない.またはアクセストークンが保存されなかった
- 参考文献を見返し,一文書き足して解決
- 認証後の再起動にて,アクセストークンが空だった
参考文献
後記
- はー SXGAつれーわー 大画面欲しーわー ほしい物リスト
- アクセス修飾子PublicはDLLを作る場合だってよ.通常のプログラムならInternalのままで良いという.[設定] ページ (プロジェクト デザイナー)
- timelineTextboxは,記事本文作成後に縦横スクロールAuto,NoWrapにした
- 次回は「応答なし」を生まないよう,エラーを制御する.try{}catch(){}を書くのだろうか