본 글은 원저자의 허락을 받아 번역하고 게시한 것 입니다.

원문 링크 - http://www.catonmat.net/blog/nodejs-modules-ntwitter/

1회 연재 - dnode (RPC 라이브러리)

2회 연재 - optimist (옵션 파서)

3회 연재 - lazy (lazy 리스트 처리)

4회 연재 - request (HTTP 스트림 처리)

5회 연재 - hashish (해시 처리)

6회 연재 - read (쉬운 표준 입력 처리)

오늘 소개할 모듈 ntwitter는 트위터 스트리밍과 검색 REST API 비동기 방식으로 처리하는 라이브러리다. 이 모듈은 Charlie McConnell, aka AvianFlu에 의해 관리되고 있다. 실제로 ntwitter는 technoweenie에 의해 생성됐지만, 이후 관리자가 여러번 바뀌었다.

이것을 사용하기 위해서는 API 키가 필요하다. 그것은 dev.twitter.com에서 쉽게 얻을 수 있다. 단지 새로운 앱을 등록하면 API 키를 얻을 수 있을 것이다.

다음은 트윗을 하는 ntwitter 예제 앱이다.

var twitter = require('ntwitter');

var twit = new twitter({
  consumer_key: 'Twitter',
  consumer_secret: 'API',
  access_token_key: 'keys',
  access_token_secret: 'go here'
});

twit
  .verifyCredentials(function (err, data) {
    if (err) {
      console.log("Error verifying credentials: " + err);
      process.exit(1);
    }
  })
  .updateStatus('Test tweet from ntwitter/' + twitter.VERSION,
    function (err, data) {
      if (err) console.log('Tweeting failed: ' + err);
      else console.log('Success!')
    }
  );

다음은 ntwitter API를 통해 검색하는 예제다.

var twitter = require('ntwitter');

var twit = new twitter({
  consumer_key: 'Twitter',
  consumer_secret: 'API',
  access_token_key: 'keys',
  access_token_secret: 'go here'
});

twit.search('nodejs OR #node', function(err, data) {
  if (err) {
    console.log('Twitter search failed!');
  }
  else {
    console.log('Search results:');
    console.dir(data);
  }
});

다음은 트위터의 스트리밍 API를 활용하는 예이다 .

var twitter = require('ntwitter');

var twit = new twitter({
  consumer_key: 'Twitter',
  consumer_secret: 'API',
  access_token_key: 'keys',
  access_token_secret: 'go here'
});

twit.stream('statuses/sample', function(stream) {
  stream.on('data', function (data) {
    console.log(data);
  });
});

여기에서 여러분이 스트림 할 수 있는 모든 statuses/*의 리스트를 확인할 수 있다.

검색과 스트리밍을 처리하기 위해 트위터에 로그인 할 필요가 없다는 것을 주목해라.

여러분은 다음과 같은 방식으로 누군가의 트윗을 스트림 할 수 있다.

var twitter = require('ntwitter');

var twit = new twitter({
  consumer_key: 'Twitter',
  consumer_secret: 'API',
  access_token_key: 'keys',
  access_token_secret: 'go here'
});

twit.stream('user', {track:'nodejs'}, function(stream) {
  stream.on('data', function (data) {
    console.dir(data);
  });
  stream.on('end', function (response) {
    // Handle a disconnection
  });
  stream.on('destroy', function (response) {
    // Handle a 'silent' disconnection from Twitter, no end/error event fired
  });
});

마지막으로 특정 경계안의 위치에서 트윗을 스트림 할 수 있다.

var twitter = require('ntwitter');

var twit = new twitter({
  consumer_key: 'Twitter',
  consumer_secret: 'API',
  access_token_key: 'keys',
  access_token_secret: 'go here'
});

twit.stream('statuses/filter', {'locations':'-122.75,36.8,-121.75,37.8,-74,40,-73,41'},
function(stream) {
  stream.on('data', function (data) {
    console.log(data);
  });
});

Cole Gillespie의 node-finden 모듈은 경계 영역의 지도 좌표를 구하는 데 사용할 수 있다. 다음은 Cole의 소프트웨어가 동작하는 모습을 나타낸 것이다.

트위터의 모든 것을 ntwitter로 굉장히 쉽게 할 수 있다.

늘 했던 것처럼 ntwitter을 npm통해 설치 할 수 있다.

npm install ntwitter

Ntwitter의 GitHub 사이트: https://github.com/AvianFlu/ntwitter.

Enjoy!

If you love these articles, subscribe to my blog for more, follow me on Twitter to find about my adventures, and watch me produce code on GitHub!