しばやんが日々のブログのPV数をツイートするために、Google Analytics APIを使う方法を書いていました。
どうやら、なかじさんがPVツイートbotを作る流れに乗ってるらしくって、ここ2,3日ツイートしては消すという作業をされていました。僕がこのエントリを書いている間に完成したらしくブログを書かれていました。
数日前にTwitterに投稿するbotってどうやって作ればええのん?とつぶやいたところ、そのなかじさんに「CoreTweet」というライブラリを使えばおっさんでもbotを簡単に作れると教えてもらいました。僕はまだ若いのですが。 ←←
@ch3cooh CoreTweet使うとおっさんにもツイートすることくらいはできたYo https://t.co/QNknmquBJ5
— なかじ (@nakaji) August 5, 2014
……ということで、まえがきが長くなりましたが今回はC#とCoreTweetを使ってTwitterに投稿するプログラムを書いてみましょう。
Twitterにアプリケーションを登録する
まずはツイートするためにAPIキーを取得します。
Twitter Developersへサインイン
Twitterの開発者向けサイト「Twitter Developers」にアクセスします。Twitterアカウントが必要ですので、右上のSign inボタンをクリックします。
ログイン画面に遷移しますのでTwitterアカウントのパスワードを入力します。
サインインに成功すると、ダッシュボード的なページに遷移しますので、右上に表示された自分のアイコンをクリックします。ペロッとメニューが出てきますのでMy applicationsをクリックします。
ツイートするプログラムの登録
APIキーを入手するためには、新しいアプリケーションとしてツイートをおこなうプログラムの名前やウェブサイトのURLを登録する必要があります。
Create New Appボタンをクリックします。
適当な名前を付けます。すべて必須欄ですので適切な情報を入力します。これでアプリケーションの登録が完了です。
アプリケーションの権限の変更
アプリケーションを登録した時点では権限がRead onlyとして登録されています。ツイートできるようにするためにはRead and Writeに変更する必要があります。
Permissionsタブをクリックして切り替えます。その上でRead and Writeのチェックボックスを有効にして、Update settingsボタンをクリックします。
APIキーとアクセストークンの値をメモします
API Keysタブをクリックして切り替えます。
Application settingsグループのAPI keyとAPI secretの値をメモしておきます。
次にツイートするために、botで使うアクセストークンを取得します。Your access tokenグループのCreate my access tokenボタンをクリックします。
Refreshしてくださいというダイアログが表示されるので、ブラウザの更新ボタンなどを使って表示をアップデートします。
再度、Your access tokenグループを見るとアクセストークンが表示されています。Access tokenとAccess token secretの値をメモしておきます。
以上でツイートするために必要な情報が集まりました。
Twitterへツイートするアプリケーションを実装する
TwitterのAPIキーと自身のアクセストークンが手に入れば、あとはコードを書くだけです。実際にツイートする処理を実装してみましょう。
プロジェクトを作る
Visual Studioを起動します。ツールバーから[ファイル]、[新規作成]、[プロジェクト]の順に選択します。
新しいプロジェクトダイアログが表示されるので、コンソールアプリケーションを選択します。プロジェクトの名前は適当にTweetTestとしていますが、任意の名前を入力してください。その場合は後述するコードの名前空間を読みかえてください。
プロジェクトが作成できました。
CoreTweetをNuGet経由でインストールする
冒頭でCoreTweetを使用してツイートすると書きました。CoreTweetはNuGet経由でインストールすることができます。ソリューションエクスプローラーのTweetTestプロジェクトの参照設定を右クリックします。
コンテキストメニューが表示されるので、[NuGet パッケージの管理...]を選択します。
NuGetパッケージの管理ダイアログが表示されるので、右上の検索欄に「CoreTweet」と入力すると検索結果が表示されます。CoreTweetを選択してインストールボタンをクリックします。
しばらくするとインストールが完了します。
ツイートするコードを実装する
「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キーを押下、または実行ボタンをクリックします。
ここまで実装できれば、ツイートする前にGoogle Analytics APIを使ってPVを取得するなり、RSSを読み込むなりして、botにツイートさせるテキストを作るのが良いでしょう。
これでbot作成が捗りますね!