Neoclassical Philosophic Musings

    flutter

    0.0.5 • Public • Published

    Flutter

    Dependencies Join the chat at https://gitter.im/gosquared/flutter

    NPM

    Twitter API authentication and fetching helpers

    Managing oauth flow can be a pain and involve a lot of messy code. Flutter helps with that.

    Auth flow example

    var express = require('express');
    var Flutter = require('flutter');
     
    var flutter = new Flutter({
      consumerKey: 'MY CONSUMER KEY',
      consumerSecret: 'MY CONSUMER SECRET',
      loginCallback: 'http://my-host/twitter/callback',
     
      authCallback: function(req, res, next) {
        if (req.error) {
          // Authentication failed, req.error contains details
          return;
        }
     
        var accessToken = req.session.oauthAccessToken;
        var secret = req.session.oauthAccessTokenSecret;
     
        // Store away oauth credentials here
     
        // Redirect user back to your app
        res.redirect('/back/to/app');
      }
    });
     
    var app = express();
     
    app.get('/twitter/connect', flutter.connect);
     
    // URL used in loginCallback above
    app.get('/twitter/callback', flutter.auth);
     
     
    // Direct users to /twitter/connect to initiate oauth flow.

    Querying Twitter API

    Currently only GET functions are supported

    // var {accessToken, secret} = retrieve credentials for request
     
    flutter.API.get('search/tweets.json', { q: 'bacon' }, accessToken, secret, function(err, results) {
      console.log(results); // { statuses: [ { ...etc } ] }
    });

    Options

    var flutter = new Flutter({
     
      // Pass this to log messages inside Flutter
      debug: function(msg){ ... },
     
      // Twitter API app credentials
      consumerKey: 'foo',
      consumerSecret: 'bar',
     
      // Twitter API login callback
      loginCallback: 'http://foo.com/authCallback',
     
      // the URL to redirect to after authorisation is complete and we have tokens
      // will not be used if authCallback is overridden
      completeCallback: 'http://foo.com/completeCallback',
     
      // called immediately before the user is redirected to Twitter's authorize
      // screen, used this to stash parameters etc on the request session
      connectCallback: function(req, res, next){},
     
      // Called on successful auth.
      // req.session contains auth parameters (see above)
      // if not defined, Flutter will redirect to completeCallback specified above
      authCallback: function(req, res, next){},
     
      // Cache lifetime to use for API requests. Set to something falsy to disable cache
      cache: 60000,
     
      // Redis config. Used for caching api responses.
      // `options` is passed to redis.createClient (https://github.com/NodeRedis/node_redis#rediscreateclient)
      redis: { host: 'localhost', port: 6379, database: 0, options: {} },
     
      // set this to a redis client to use instead of creating a new one
      cacheClient: redisClient,
     
      // Key prefix used on all cache keys in redis
      prefix: 'flutter:'
     
    });

    Keywords

    Install

    npm i flutter

    DownloadsWeekly Downloads

    65

    Version

    0.0.5

    License

    MIT

    Last publish

    Collaborators

    • simontabor
    • jt