できるかぎりシンプルに、できるかぎり簡単に、できるかぎり美しくTwitterを扱えるようにしたTwitterライブラリです。 TwitterAPI 1.1、ストリーミング、xAuth認証などにも対応。
(注: 上記のダウンロード先のものは古い可能性があります。最新のものを使いたい場合はこのリポジトリをクローンし手動でビルドしてください(2015年6月現在、まだリリースはありません))
付属のXMLも一緒に設置することで、インテリセンスの恩恵を受けられます。
C#での解説となります。ご了承ください。
Twitchの使い方の例として、タイムラインにツイートを投稿するまでの一連の流れを見ていきます。
まず
var tw = new Twitter("your consumer key", "your consumer secret");
tw.Authorize();
とします(your consumer key
にはあなたのアプリケーションのConsumerKeyを、your consumer secret
にはあなたのアプリケーションのConsumerSecretを設定してください)。
すると規定のウェブブラウザで連携認証フォームが表示されます。ユーザーが連携を許可するとPINコードが得られます。 次に、
tw = await tw.AuthorizePin("got pin code");
とすることでTwitterAPIにアクセス出来るようになります(got pin code
には取得できたPINコードを設定してください)。
ここまでたった3文です。
実際になにかつぶやいてみましょう:
tw.Tweet("Hello, Twitch!");
さあどうでしょうか。タイムラインを確認してみてください。 無事にツイートが投稿されていれば成功です。
var tw = new Twitter(...)
でTwitterクラス(Twitch.Twitter)のインスタンスを作成しています。
便宜上、この「Twitterクラスのインスタンス」のことをTwitchではTwitterオブジェクトと呼んでいます。
TwitterオブジェクトのAuthorize
メソッドの呼び出しでブラウザに認証フォームを表示させます。
TwitterオブジェクトのAuthorizePin
メソッドは、PINコードを受け取って、認証されたユーザーのAccessToken、AccessTokenSecretなどが設定された新たなTwitterオブジェクトを返します(呼び出したTwitterオブジェクト自体が書き換わるわけではありません。新たなTwitterオブジェクトを返します)。
TwitterのストリーミングAPIを利用すると、リアルタイムでタイムラインを取得したりすることが出来ます。TwitchではこれらのストリーミングAPIをサポートしています。
試しにUserStreamを利用してみます。 Streaming APIの中でも、UserStreamはユーザーのホーム タイムライン、各種イベントが送られます。 つまり、通常のそのユーザーのホーム タイムラインに表示されるべきツイートに加えて、ツイートがお気に入りに登録された/解除された、フォローされた、リストが更新されたなどのイベントが発行されます。 Twitchではこれらのイベントも簡単に利用できます。
UserStreamに接続するには、UserStream (Twitch.Streaming.UserStream) クラスを利用します。 UserStream クラスの Connect() メソッドにより接続を開始出来ます。
具体的なコードを以下に示します。(using Twitch.Streaming;
してください)
var tw = (上記の認証手順などで取得できたTwitterオブジェクト)
// UserStream作成
var stream = new UserStream(tw);
// StatusUpdated イベントをイベント ハンドラーに登録
// このイベントは、ホーム タイムラインにツイートが投稿された際に発生します。
stream.StatusUpdated +=
new UserStream.StatusUpdatedEventHandler(StreamingCallback);
// 接続を開始
stream.Connect();
上記のコードに加え、ツイートを受け取るイベントハンドラーを作成する必要があります。 以下はその例です。
public void StreamingCallback(object sender, StatusUpdatedEventArgs e)
{
// ツイートを表示
Console.WriteLine(e.Status.Text);
}
外部にイベントハンドラーを作成せずに、ラムダ式を使っても書けます。
stream.StatusUpdated += (object _, StatusUpdatedEventArgs e) =>
{
// ツイートを表示
Console.WriteLine(e.Status.Text);
};
このプログラムを実行すると、コンソールにリアルタイム&非同期でユーザーのホーム タイムラインが表示されていきます。 このように、接続を開始すると、継続してTwitterからStream メッセージが送信されていきます。 イベント メッセージを受信すると、それに対応したイベントが発行されます。これには通常のツイート イベントも含まれます。
UserStreamのStreaming 接続は、様々な理由により予期せずに切断されることがあります。
このとき、あらかじめStreamのIsAutoReconnectプロパティをtrue
にしておくと、自動的に再接続を試みます。
TwitchでこれらのストリーミングAPIを利用すれば、所謂エタフォ(タイムラインに流れてきたツイートを自動でふぁぼる)も簡単に実装することが出来ます。
一般に公開されていないエンドポイントへのリクエストなど、Twitchが対応していないAPIへの独自のリクエストを送信したい場合は、TwitterオブジェクトのRequestメソッドを利用するか、または TwitterRequest (Twitch.TwitterRequest) クラス を利用して簡単にリクエストを作成できます。
var query = new Dictionary<string, string>();
query["hrtn"] = "hmwr";
query["oomr"] = "skrk";
tw.Request(API.Method.POST, "https://api.twitter.com/hoge/huga.json", query);
Twitch:
Twitch.Twitter.APIs.REST.Statuses.Update(tw, "櫻子可愛いですわ");
Twitch2:
tw.Tweet("櫻子可愛いですわ");
ms-pl
古谷向日葵、大室櫻子