酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

C#とCoreTweetを使って簡単にTwitterへツイートするbotを作る

しばやんが日々のブログのPV数をツイートするために、Google Analytics APIを使う方法を書いていました。

どうやら、なかじさんがPVツイートbotを作る流れに乗ってるらしくって、ここ2,3日ツイートしては消すという作業をされていました。僕がこのエントリを書いている間に完成したらしくブログを書かれていました。

数日前にTwitterに投稿するbotってどうやって作ればええのん?とつぶやいたところ、そのなかじさんに「CoreTweet」というライブラリを使えばおっさんでもbotを簡単に作れると教えてもらいました。僕はまだ若いのですが。 ←←

……ということで、まえがきが長くなりましたが今回はC#とCoreTweetを使ってTwitterに投稿するプログラムを書いてみましょう。

Twitterにアプリケーションを登録する

まずはツイートするためにAPIキーを取得します。

Twitter Developersへサインイン

Twitterの開発者向けサイト「Twitter Developers」にアクセスします。Twitterアカウントが必要ですので、右上のSign inボタンをクリックします。

f:id:ch3cooh393:20140808000824p:plain

ログイン画面に遷移しますのでTwitterアカウントのパスワードを入力します。

f:id:ch3cooh393:20140808001411p:plain

サインインに成功すると、ダッシュボード的なページに遷移しますので、右上に表示された自分のアイコンをクリックします。ペロッとメニューが出てきますのでMy applicationsをクリックします。

f:id:ch3cooh393:20140808001418p:plain

ツイートするプログラムの登録

APIキーを入手するためには、新しいアプリケーションとしてツイートをおこなうプログラムの名前やウェブサイトのURLを登録する必要があります。

Create New Appボタンをクリックします。

f:id:ch3cooh393:20140808001427p:plain

適当な名前を付けます。すべて必須欄ですので適切な情報を入力します。これでアプリケーションの登録が完了です。

f:id:ch3cooh393:20140808001435p:plain

アプリケーションの権限の変更

アプリケーションを登録した時点では権限がRead onlyとして登録されています。ツイートできるようにするためにはRead and Writeに変更する必要があります。

Permissionsタブをクリックして切り替えます。その上でRead and Writeのチェックボックスを有効にして、Update settingsボタンをクリックします。

f:id:ch3cooh393:20140808001455p:plain

APIキーとアクセストークンの値をメモします

API Keysタブをクリックして切り替えます。

Application settingsグループのAPI keyAPI secretの値をメモしておきます。

f:id:ch3cooh393:20140808001506p:plain

次にツイートするために、botで使うアクセストークンを取得します。Your access tokenグループのCreate my access tokenボタンをクリックします。

Refreshしてくださいというダイアログが表示されるので、ブラウザの更新ボタンなどを使って表示をアップデートします。

f:id:ch3cooh393:20140808001514p:plain

再度、Your access tokenグループを見るとアクセストークンが表示されています。Access tokenAccess token secretの値をメモしておきます。

f:id:ch3cooh393:20140808001521p:plain

以上でツイートするために必要な情報が集まりました。

Twitterへツイートするアプリケーションを実装する

TwitterのAPIキーと自身のアクセストークンが手に入れば、あとはコードを書くだけです。実際にツイートする処理を実装してみましょう。

プロジェクトを作る

Visual Studioを起動します。ツールバーから[ファイル]、[新規作成]、[プロジェクト]の順に選択します。

f:id:ch3cooh393:20140808004200p:plain

新しいプロジェクトダイアログが表示されるので、コンソールアプリケーションを選択します。プロジェクトの名前は適当にTweetTestとしていますが、任意の名前を入力してください。その場合は後述するコードの名前空間を読みかえてください。

f:id:ch3cooh393:20140808004208p:plain

プロジェクトが作成できました。

CoreTweetをNuGet経由でインストールする

冒頭でCoreTweetを使用してツイートすると書きました。CoreTweetはNuGet経由でインストールすることができます。ソリューションエクスプローラーのTweetTestプロジェクトの参照設定を右クリックします。

コンテキストメニューが表示されるので、[NuGet パッケージの管理...]を選択します。

f:id:ch3cooh393:20140808004216p:plain

NuGetパッケージの管理ダイアログが表示されるので、右上の検索欄に「CoreTweet」と入力すると検索結果が表示されます。CoreTweetを選択してインストールボタンをクリックします。

f:id:ch3cooh393:20140808004236p:plain

しばらくするとインストールが完了します。

ツイートするコードを実装する

C#でTwitterアプリを作る 第2回 Timeline / Status - らこらこブログ」を参考にして、テキストをツイートする処理を実装します。……と言ってもCoreTweetのライブラリが優秀ですので投稿するする処理自体は1行で済みます。

{API key}{Access token secret}の部分は、Twitter Developersで事前にメモしておいたAPIキーとアクセストークンに置換してください。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TweetTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var tokens = CoreTweet.Tokens.Create("{API key}"
                , "{API secret}"
                , "{Access token}"
                , "{Access token secret}");

            var text = "status text";
            tokens.Statuses.Update(new { status = text });
        }
    }
}

CoreTweetのおかげで、これだけでツイートさせることができます。

(2015/5/17追記)上記のサンプルコード内で"{API key}"と書いていますが、{}を残してしまうと認証処理で失敗してしまうので残さず上書きしてください。

実行する

F5キーを押下、または実行ボタンをクリックします。

f:id:ch3cooh393:20140808001535p:plain

ここまで実装できれば、ツイートする前にGoogle Analytics APIを使ってPVを取得するなり、RSSを読み込むなりして、botにツイートさせるテキストを作るのが良いでしょう。

これでbot作成が捗りますね!