node-twitter, 用于 Twitter REST和流api的客户端库

分享于 

6分钟阅读

GitHub

  繁體 雙語
An asynchronous client library for the Twitter REST and Streaming API's.
  • 源代码名称:node-twitter
  • 源代码网址:http://www.github.com/desmondmorris/node-twitter
  • node-twitter源代码文档
  • node-twitter源代码下载
  • Git URL:
    git://www.github.com/desmondmorris/node-twitter.git
    Git Clone代码到本地:
    git clone http://www.github.com/desmondmorris/node-twitter
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/desmondmorris/node-twitter
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    用于 Node.js的 Twitter

    用于 Twitter REST流的异步客户端库。

    Build StatusNPM

    var Twitter =require('twitter');var client =newTwitter({
     consumer_key:'',
     consumer_secret:'',
     access_token_key:'',
     access_token_secret:''});var params = {screen_name:'nodejs'};client.get('statuses/user_timeline', params, function(error, tweets, response) {
     if (!error) {
     console.log(tweets);
     }
    });

    安装

    npm install twitter

    快速启动

    你将需要使用一组使用者和访问令牌/密钥形式的有效 Twitter 开发凭证。 你可以在这里找到这些 不要忘记调整你的权限- 大多数帖子请求要求写入权限。

    var Twitter =require('twitter');

    用于基于用户的身份验证的:

    var client =newTwitter({
     consumer_key:'',
     consumer_secret:'',
     access_token_key:'',
     access_token_secret:''});

    添加你的凭据我将使用 环境变量 来保证你的private 信息安全。 这样的东西:

    var client =newTwitter({
     consumer_key:process.env.TWITTER_CONSUMER_KEY,
     consumer_secret:process.env.TWITTER_CONSUMER_SECRET,
     access_token_key:process.env.TWITTER_ACCESS_TOKEN_KEY,
     access_token_secret:process.env.TWITTER_ACCESS_TOKEN_SECRET});

    仅用于基于应用程序的验证:

    如有必要,你将需要从 Twitter 获取一个承载令牌,如这里所示。

    var client =newTwitter({
     consumer_key:'',
     consumer_secret:'',
     bearer_token:''});

    添加你的凭据我将使用 环境变量 来保证你的private 信息安全。 这样的东西:

    var client =newTwitter({
     consumer_key:process.env.TWITTER_CONSUMER_KEY,
     consumer_secret:process.env.TWITTER_CONSUMER_SECRET,
     bearer_token:process.env.TWITTER_BEARER_TOKEN});

    注- 你将不能访问所有端点,而只使用应用程序身份验证,但你将访问更高的API限制。

    请求

    现在,你可以通过便利方法来对API进行获取和POST请求。

    client.get(path, params, callback);client.post(path, params, callback);client.stream(path, params, callback);

    REST API

    你只需要把端点和参数传递给一个方便的方法。 查看文档站点以参考可用端点。

    例如让我们得到一个最喜欢的插件的列表:

    client.get('favorites/list', function(error, tweets, response) {
     if(error) throw error;
     console.log(tweets); // The favorites.console.log(response); // Raw response object.});

    如何通过传递参数的示例? 让我们来推一些

    client.post('statuses/update', {status:'I Love Twitter'}, function(error, tweet, response) {
     if(error) throw error;
     console.log(tweet); // Tweet body.console.log(response); // Raw response object.});

    承诺

    REST API 便利方法还将在以下情况下返回承诺:

    • 省略了回调
    • 都有承诺。

    如果满足这两个条件,则 上面 示例将变为:

    client.post('statuses/update', {status:'I Love Twitter'})
    . then(function (tweet) {
     console.log(tweet);
     })
    . catch(function (error) {
     throw error;
     })

    注意,请求 MODULE 返回的原始 response 对象不是通过已经履行的承诺传递的。 如果你需要这里选项,请使用回调 Pattern。

    流 API

    使用 stream 便利方法,你可以通过直接从流的流中的一个流打开和操作数据来打开和操作数据。 让我们看看谁在讨论 javascript:

    var stream =client.stream('statuses/filter', {track:'javascript'});stream.on('data', function(event) {
     console.log(event&&event.text);
    });stream.on('error', function(error) {
     throw error;
    });// You can also get the stream in a callback if you prefer.client.stream('statuses/filter', {track:'javascript'}, function(stream) {
     stream.on('data', function(event) {
     console.log(event&&event.text);
     });
     stream.on('error', function(error) {
     throw error;
     });
    });

    注意流几种类型的事件,请参阅文档了解更多信息。 没有标准的方法来检测tweet与它的他消息,但有些用户已经成功地使用了以下策略。

    _ =require('lodash')constisTweet=_.conforms({
     contributors:_.isObject,
     id_str:_.isString,
     text:_.isString,
    })

    示例

    贡献者

    最初作者由 @technoweenie,并由 @jdub 维护。

    当前由 @desmondmorris 维护。

    和我们不能忘记社区。


    相关文章