Fei3939の戯言

忘備録とかいろいろ愚痴ったりとか

スクリーンショット+Twitter

あらまし

前から触ろうと思っていたC#の題材としてスクショアプリを作ってみました。
ただスクショとるだけだとつまらないので、そのままTwitterに投稿できるようにしてみました。

開発環境

機能

あれだった点

Twitter認証でコケてた
  • OAuth認証でPINコードを取得してaccess.TokenとAccess.TokenSecretを投げたときに受け取ったはずのserviceの中がNullでNullReferenceExceptionが返ってきた
using TweetSharp; 

TwitterService service = new TwitterService("consumerKey", "consumerSecret");
OAuthRequestToken requestToken = service.GetRequestToken();
Uri uri = service.GetAuthorizationUri(requestToken);
Process.Start(uri.ToString());
//---- ここまでは良かった ----//

string verifier = "123456"; //-- Pinコード

//-- アクセストークンを取ってくる…
OAuthAccessToken access = service.GetAccessToken(requestToken, verifier);

//-- 問題はここ
service.AuthenticateWith(access.Token, access.TokenSecret);

この部分で例外をキャッチしていたようでserviceの参照でNullを見てたらしい…
(数日放置して書き直したら動いたので原因がまだよくわからない)

UIがクソ
  • 自分のセンスのなさが伺えます
  • Twitter認証するための認証ページを開かせるためのボタンと認証ボタンを分けてた
    • 結局認証ボタンでまとめて、別フォームを開いてPinコードを入力するようにした
常に画像が添付して投稿される状態
  • スクショした画像をすぐにそのままつぶやく目的だったから良いといえばよかったけど…
  • 結局投稿するときに画像を添付するかどうか尋ねるダイアログを出すようにした

修正や改善や機能追加的なTodo(もしやるとしたら)

  • Twitter認証の情報を保持させる(今はアプリ起動後に毎回認証しないとダメ)
    • access.Tokenとaccess.TokenSecretとか持ってたらいいとか見たけど無理だった。ヨクワカラン
  • 認証ボタンの位置を変える
    • 今の位置だとスクショの取れる範囲に影響している
  • スクショを取ったときにファイル名を付けて区別できるようにする
    • test.pngとか決め打ちにしてる
  • 全体的にデザインがクソ
    • どうしようもない

やってみて

C#とかフォームアプリとかGUITwitter連携とかいろいろと勉強になったし楽しかった。
もうちょっといじって適当なところでgithubとかに公開できたらいいなーとは思うけど
ソースコードあれだしやらないかな…