はじめに
twitモジュールが便利すぎたので記念に投稿。
参考書籍
JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック
実行環境
・Windows10
・VirtualBox
・Vagrant 2.2.5
・Node.js v6.17.1
・Twitter Developers 登録済み
モジュールのインストール
ソースコード置き場に移動して以下のコマンド実行。
成功すると、同ディレクトリ上にnode_modulesディレクトリができあがる
[vagrant@localhost 02-twitter]$ npm install twit --no-bin-links
/vagrant_data/src/ch06/02-twitter
mqw twit@2.2.11
mqw request@2.88.0
mqw http-signature@1.2.0
mqw sshpk@1.16.1
tqq asn1@0.2.4
tqq bcrypt-pbkdf@1.0.2
tqq dashdash@1.14.1
tqq ecc-jsbn@0.1.2
tqq getpass@0.1.7
tqq jsbn@0.1.1
tqq safer-buffer@2.1.2
mqq tweetnacl@0.14.5
npm WARN enoent ENOENT: no such file or directory, open '/vagrant_data/src/ch06/02-twitter/package.json'
npm WARN 02-twitter No description
npm WARN 02-twitter No repository field.
npm WARN 02-twitter No README data
npm WARN 02-twitter No license field.
[vagrant@localhost 02-twitter]$ ls
node_modules twi-app-test.js
Twitter APIキーを確認する
- Twitter Developersにログインする
- 画面右上あたりにある[Get Started]クリック
- 画面真ん中あたり[Create An App]クリック
- 画面の指示に従ってアプリ登録に必要な事項を記入&登録
- 登録されたら4種のキーが発行されるのでメモとる
↓↓みたいなやつがもらえる
キーは使われると困るので伏字(***)にしてます
Consumer API keys
******************* (API key)
@@@@@@@@@@@@@@@@@@@ (API secret key)
Regenerate
Access token & access token secret
???????????????????? (Access token)
!!!!!!!!!!!!!!!!!!!! (Access token secret)
プログラムの作成
ごく短いプログラムを作る↓↓
// Twitterを使ったテスト
var Twit = require('twit');
// 以下正しいキーを設定
var T = Twit({
consumer_key:'*******************',
consumer_secret:'@@@@@@@@@@@@@@@@@@@',
access_token:'????????????????????',
access_token_secret:'!!!!!!!!!!!!!!!!!!!!'
});
// Javascriptに関するつぶやきを表示する
var stream = T.stream('statuses/filter', {track: 'Kaggle'} );
// つぶやきがあったときに呼ばれるイベントを設定
stream.on('tweet', function (tw) {
var text = tw.text;
var user_name = tw.user.name;
console.log(user_name + "> " + text);
});
うごかしてみる
実行結果は↓↓。 ※試しの雰囲気を見てほしいだけなので名前とかは伏字にしときます
起動してぼんやり眺めるだけでもなんとなく楽しいかもしれない。
[vagrant@localhost 02-twitter]$ node twi-app-test.js
????> RT @MLBear2: 幸いにも上位に入れたので初めてSolutionを投稿しました。特殊なコンペ(?)だったので他コンペにそのまま流用で きるノウハウは多くないかもですが、adversarial validationをあえて完全無視したとか、他のsolutionが書いてないよ…
????> @radekosmulski @jeremyphoward @kaggle @RSNA @threader_app
????> Curiosamente, las mayores dificultades que encuentro son la manipulacion de datos previa entrada a la red, y que el… https://t.co/jHmvM68xdu