node.js 유용한 모듈 (7) – ntwitter

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

원문 링크 - 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!

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

다음의 HTML 태그와 속성을 사용할 수 있습니다: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>