C#
Twitter
TwitterAPI
nuget
CoreTweet

CoreTweetでPINを取得してツイートする方法(OAuthによるトークン発行)

windows用NowPlayingソフトがほしかったので作ったときにC#でやるんだったらCoreTweet使ったほうが簡単だよみたいな話をどっかの記事で読んだのでCoreTweet使ったら本当に簡単だったので使い方?を書いてきます。ついでに少々手こずったトークン発行に関しても書いておきます。

CoreTweetは直のTwitterAPIを叩いているのでここを読んでおくと楽かと思います。

NuGetでCoreTweetをインストール

ソリューションエクスプローラーより参照を右クリック、NuGetパッケージの管理に進みます。
キャプチャ.PNG

あとは「CoreTweet」と検索してインストールするだけです。ストリーミングも使いたいのであれば「CoreTweet.Streaming.Reactive」もインストールしておく必要があります。

キャプチャ2.PNG

CoreTweetでPinを取得してツイートする

MainWindow.cs
using CoreTweet;

public partial class MainWindow : Window
    {
        OAuth.OAuthSession session;
        public Tokens tokens;

 private void button_Click(object sender, RoutedEventArgs e)
        {
            //Pinの発行
            session = OAuth.Authorize("APIKEY", "APISECRET");
            System.Diagnostics.Process.Start(session.AuthorizeUri.AbsoluteUri);
        }
 private void button1_Click(object sender, RoutedEventArgs e)
        {
            //トークンの発行
            string pincode = textBox.Text;
            tokens = OAuth.GetTokens(session, pincode);
        }
 private void button2_Click(object sender, RoutedEventArgs e)
        {
            //ツイート
            var text = "認証成功";
            tokens.Statuses.Update(status => text);
     }
}

まず始めに「button」をクリックすることでSystem.Diagnostics.Process.Start(session.AuthorizeUri.AbsoluteUri)でpin発行のurlを規定のブラウザで表示します。

次に「button1」をクリックすることで「textbox」に入力されたpinを読み取り、トークンを発行します。PINを用いてトークンを所得するときはOAuth.GetTokens(session, pincode)がおすすめです。(この書き方が一番間違わなくわかりやすい気がします)

最後に「button2」をクリックすることで先程発行したトークンを利用し「認証成功」という文字をツイートします。ツイートの方法は沢山有るのですがtokens.Statuses.Update(status => text)と記述するほうが良いかと思います。
この記述方法なのですが、こちらの記事を参考にさせていただきました。
参考にさせていただいた記事とおなじ説明となりますが、ラムダ式の変数名をパラメータ名、戻り値をパラメータ値としています。

最後に

VisualStudioを久しぶりに使ったのですが、C#を使うときはこれじゃないともう無理と思うほどめちゃくちゃ扱いやすかったです。
次回、iTunes COM SDKについて書くかもです。