なか日記

一度きりの人生、楽しく生きよう。

C#とAzureでPVをつぶやくBotを作ってみよう -第4回 Twitterに投稿する-

連載第4回目はTwitterにつぶやく処理を実装します。

連載目次

はじめに
第1回 Google Analytics APIの利用準備
第2回 Google AnalyticsからPVを取得する
第3回 Twitter APIの利用準備
第4回 Twitterに投稿する
第5回 Webアプリケーションにまとめる
最終回 Azureへのデプロイ

CoreTweetのインストール

パッケージマネージャコンソールでCoreTweetをインストールします。

PM> Install-Package CoreTweet

app.configにTwitter API関連の設定を追加

app.configに前回行った作業で取得した以下の設定を追加します。

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret
    <add key="consumerKey" value="xxxxxxxxxx"/>
    <add key="consumerSecret" value="xxxxxxxxxx"/>
    <add key="accessToken" value="xxxxxxxxxx-xxxxxxxxxx"/>
    <add key="accessTokenSecret" value="xxxxxxxxxx"/>

TwitterHelperクラスの作成

プロジェクトにTwitterHelperクラスを追加します。

public static class TwitterHelper
{
    public static async Task UpdateStatusAsync(string message)
    {
        var consumerKey = ConfigurationManager.AppSettings["consumerKey"];
        var consumerSecret = ConfigurationManager.AppSettings["consumerSecret"];
        var accessToken = ConfigurationManager.AppSettings["accessToken"];
        var accessTokenSecret = ConfigurationManager.AppSettings["accessTokenSecret"];

        var tokens = Tokens.Create(consumerKey, consumerSecret, accessToken, accessTokenSecret);

        await tokens.Statuses.UpdateAsync(status => message);
    }
}

動作確認

動作確認ですが、コンソールアプリケーションもしくは単体テストプロジェクトを作成して、以下の様なコードで動作確認できます。

TwitterHelper.UpdateStatusAsync("テスト " + DateTime.Now.ToString("hh:mm:ss")).Wait();

私はどちらかというと単体テストプロジェクトで確認する派ですね。他のテストと一緒に実行するうちにAPI消費するからやめた方がいいんじゃない。そもそも単体テストじゃないし。という突っ込みを頂きました。確かにその通りですね。考えを改めたいと思います。

おわり

これでTwitterでつぶやくことができるようになりました。

次回はPVの取得とTwitterへのつぶやきを一連の処理にまとめます。