5日目:Express×OAuth2(Client)×Nginx×pm2でtwscを実装した話② TwitterOAuth2篇

諸事情で更新が止まってしまいました、お久しぶりです。気付けばもうイブです、そう、最終日です。えっ

とりあえず貯めてた分を書いていく…うん。

ということでオレオレAdventCalendar2014 5日目です。

前回に引き続き今回はTwitter Souce Checkerに関する話を。

TwSCはツイートの情報を取得するのにTwitterのApplication-only authenticationを利用しています。これについては次回詳しくかくつもりですがとりあえずユーザー認可を伴わないTwitterAPI利用のためのアプリケーション認証です。

TwitterのOAuthフローを悪用したアプリに対処するためのツールなのに認可求めてたら意味わからないですよね()

Node.jsからTwitterOAuth2を使う

Node.jsでTwitter API1.1を使うにはいくつか定番ライブラリがありますがNode-Twitterやnode-twitter-apiはOAuth1.0aの一般的なユーザー認可用であってこれらのライブラリはApplication-only authenticationには利用できません。
と言っても心配する必要はなく、これらのライブラリがOAuthのベースに使ってるnode-oauthはOAuth2にも対応しており、サンプルでもTwitterAPIで利用する方法が提示されています。

注意事項としてはこのライブラリは認可以外のPOSTはメソッドが用意されていないのでOAuth2.prototype._requestを自分で叩く必要があるみたい、ってあたりです。TwitterAPIの場合OAuth2はGET専用なので気にする必要はないのですが。

node-oauthでツイート検索ツールをつくる

node-oauthを実際に使ってみよう!ってことでコマンドラインツイート検索ツールをサンプルで作りました()

本来なら分けるべきところまとめたり即時関数多用したりクソ読みにくいコードになりました()ツイート検索しか能がないです。

 node-twitter-search

とりあえず順を追って説明

まずはプロジェクトディレクトリにpackage.jsonをつくっておく。いつも通りnpm initしておけばいい。あるいはWebStormとかでも作れるし自由に。もちろん自分で書けばいいんだけど。

今回はコマンドライン用なのでargvで検索オプション指定できるようにした(メンテされてナイキもするけどまあ使えるしいいや)のとCoffee-Scriptで書いた。

とりあえず必要ライブラリのインストール

とりあえずindex.jsでCoffee即時実行できるようにして本体読み込ませるようにした。

※この先はtwitter-search.coffee

まず必要なライブラリのインクルード

で、argvはテキトーに。

 OAuth認可

基本的にはコメントで書いた通り。なおbaseurlはhttps://api.twitter.com/

GETメソッドを叩く

APIの各メソッドをたたくのもTwitter.getするだけ。
とりあえずこんなのを作っておくと楽

 検索する

同様にこれを…

こんな感じに呼ぶ

これでとりあえず検索ができる。(雑すぎ)

node-twitter-searchを使ってみる

今回はついでにbinも設定したのでnpm install -gすればすぐに使えるようになってる。

Install

そういやよくnpm installでGitHubのURLをフルで書いてるの見かけるけど省略できるからねっ!

インストールしたら-hでヘルプ見れば使い方は一通り出る。(と思って手元で試してみたら400吐かれたクソnpmが())ヘルプが手抜きに見えるのはきのせい。説明少ないけどわかるよねっ!

Usage

とりあえず朝の挨拶ちぇっく!

多分botのツイートがいっぱい返ってくる。時間によるけどね。

Option

説明省いてたりするけど基本的にTwitterの検索演算子をオプション化してる。

これらはいずれも同じということ。なお-r(–rt)はvalueはいらない。

Helpともう一つだけ例外があって --rate_limit_statusをつけた。名前の通りレートリミットを取得する。実はこのトークン、あれ(察して)のやつだけどいつも減ってるやつがある…どういうことだ…

むすび

とりあえずまぁこんな感じでTwitterAppOnlyAuthを使ってツイートを取得できました。

次回はApplication-only authenticationについてもうちょい書いていきたいと思うけど…いつになるやら()

あとTwitterネタでちとく氏がAdventCalendar14日目(7日目)参加してくれました。そちらもどうぞ。

コメントを残す