[Visual Studio] Debug.WriteLine でツイートできる NuGet パッケージを作った

DevelopmentC#,Twitter,Visual Basic,Visual Studio,作ってみた

最近の 最強の Twitter クライアント戦争情報 や、Excel からツイートできるアドイン「慧ちゃんのリボン」 などの影響を受け、ちょっと作りたくなったので、最弱の Twitter クライアント戦争に参戦しました。

これは何?

?「Twitter クライアントを作った」
?「Twitter クライアント」

?「Visual Studio で使える」
?「Visual Studio」

?「Debug.WriteLine でツイートする」
?「Debug.WriteLine」

?「NuGet で手に入る」
?「NuGet」

使い方

NuGet からインストール

NuGet から TraceListener for Twitter をプロジェクトに追加します。

TraceListener for Twitter

コードで直接 TraceListener を追加する場合

TwitterTraceListener クラスを Trace.Listeners に追加します。

Trace.Listeners.Add(new TwitterTraceListener());

ツイートします。

Debug.WriteLine("こんにちは");

以上です。Visual Studio からこっそりツイートしたいときや、ログやデバッグ情報の出力に最適です! 140文字より長い場合は末尾が削除されます。また、現在のバージョンでは、URL を含む場合、文字数のカウントが変則になりますが、その処理が入っていないため、正しくカウントできません。


class Program
{
static void Main(string[] args)
{
Trace.Listeners.Add(new TwitterTraceListener());
Debug.WriteLine("こんにちは");
}
}

view raw

Program.cs

hosted with ❤ by GitHub

App.config で TraceListener を追加する場合

App.config に下記の記述を追加しても使えます。


<system.diagnostics>
<trace>
<listeners>
<add name="twitterListener" type="jz5.Diagnostics.TwitterTraceListener,TwitterTraceListener" />
</listeners>
</trace>
</system.diagnostics>

view raw

app.config

hosted with ❤ by GitHub

Consumer key/secret, Accsess token/secret の指定

何も指定しない場合、毎回 Twitter の認証と PIN の入力が必要です。

TraceListener for Twitter

コードで直接記述する場合、コンストラクタで、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 の指定が可能です。


<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>

view raw

app.config

hosted with ❤ by GitHub

おわりに

コードは、GitHub で公開しています(MS-PL)。

この元ネタは、プログラミング生放送勉強会 第8回@名古屋(2011年!!)での自分のライトニングトークからです。コードはまったく別ですが、Console.WriteLine と Debug.Print でツイートする、メッセージが長い場合は TwitPic に画像としてアップする、というネタだったのですが、失敗 & 時間切れで終了しました。

で、今回作り終わった後に検索してみると、2009年(!?)に、同じようなことをしている方がいました