[Visual Studio] Debug.WriteLine でツイートできる NuGet パッケージを作った
最近の 最強の Twitter クライアント戦争情報 や、Excel からツイートできるアドイン「慧ちゃんのリボン」 などの影響を受け、ちょっと作りたくなったので、最弱の Twitter クライアント戦争に参戦しました。
これは何?
?「Twitter クライアントを作った」
?「Twitter クライアント」
?「Visual Studio で使える」
?「Visual Studio」
?「Debug.WriteLine でツイートする」
?「Debug.WriteLine」
?「NuGet で手に入る」
?「NuGet」
使い方
NuGet からインストール
NuGet から TraceListener for Twitter をプロジェクトに追加します。
コードで直接 TraceListener を追加する場合
TwitterTraceListener クラスを Trace.Listeners に追加します。
Trace.Listeners.Add(new TwitterTraceListener());
ツイートします。
Debug.WriteLine("こんにちは");
以上です。Visual Studio からこっそりツイートしたいときや、ログやデバッグ情報の出力に最適です! 140文字より長い場合は末尾が削除されます。また、現在のバージョンでは、URL を含む場合、文字数のカウントが変則になりますが、その処理が入っていないため、正しくカウントできません。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
Trace.Listeners.Add(new TwitterTraceListener()); | |
Debug.WriteLine("こんにちは"); | |
} | |
} |
App.config で TraceListener を追加する場合
App.config に下記の記述を追加しても使えます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<system.diagnostics> | |
<trace> | |
<listeners> | |
<add name="twitterListener" type="jz5.Diagnostics.TwitterTraceListener,TwitterTraceListener" /> | |
</listeners> | |
</trace> | |
</system.diagnostics> |
Consumer key/secret, Accsess token/secret の指定
何も指定しない場合、毎回 Twitter の認証と PIN の入力が必要です。
コードで直接記述する場合、コンストラクタで、Access token/secret、または、Consumer key/secret・Accsess token/secret の指定が可能です。
Trace.Listeners.Add(new TwitterTraceListener(accessToken, accessSecret));
Trace.Listeners.Add(new TwitterTraceListener(consumerKey, consumerSecret, accessToken, accessSecret));
Consumer key/secret は、既定の値があり、省略可能です。一度 PIN により認証した後、TwitterTraceListener オブジェクトの AccessToken・AccessTokenSecret プロパティから認証後の値を参照できるので、メモしておくと、次から利用できます。
Consumer key/secret・Accsess token/secret すべてを指定する場合は、Twitter 開発者向けページの Twitter Apps から、自分のクライアントと Access token/secret を取得して指定してください。
App.config に記述する場合も、Access token/secret、または、Consumer key/secret・Accsess token/secret の指定が可能です。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<system.diagnostics> | |
<trace> | |
<listeners> | |
<add name="twitterListener" type="jz5.Diagnostics.TwitterTraceListener,TwitterTraceListener" | |
consumerKey="**Your_Consumer_Key**" | |
consumerSecret="**Your_Consumer_Secret**" | |
accessToken="**Your_Access_Token**" | |
accessSecret="**Your_Access_Token_Secret**" /> | |
</listeners> | |
</trace> | |
</system.diagnostics> |
おわりに
コードは、GitHub で公開しています(MS-PL)。
この元ネタは、プログラミング生放送勉強会 第8回@名古屋(2011年!!)での自分のライトニングトークからです。コードはまったく別ですが、Console.WriteLine と Debug.Print でツイートする、メッセージが長い場合は TwitPic に画像としてアップする、というネタだったのですが、失敗 & 時間切れで終了しました。
で、今回作り終わった後に検索してみると、2009年(!?)に、同じようなことをしている方がいました。