Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at cf.Objective() 2014 (Bloomington, MN) with: Jeff McDowell and Joel Hill and Jonathan Rowny and Shawn Grigson and Jonathan Dowdle and Matt Vickers and Christian Ready and Asher Snyder and Clark Valberg and Oscar Arevalo and David Bainbridge

KinkyTwits - My ColdFusion And jQuery Powered Twitter Client (Beta)

By Ben Nadel on

It's taken me a long time to actually get to this point, but I finally found the time to clean up KinkyTwits, my free ColdFusion and jQuery powered Twitter client. It's not the best application out there, but if nothing else, it has some pretty cool jQuery, ColdFusion API, AJAX, and JSON examples. Plus, it runs without a database, you can pretty much drop it on your ColdFusion server and it just works (I love me some portability). You can get the source code off of my KinkyTwits Project page.

 
 
 
 
 
 
KinkyTwits - Free ColdFusion And jQuery Powered Twitter Client. 
 
 
 

Some cool features:

  • Stores data in JSON files so it can run without a database.
  • Task Bar window tab displays number of unread messages since window lost focus.
  • Custom groups allow you to filter statuses based on regular expressions.
  • Custom groups have option to remove statuses from general feed. The more people you follow, the more essential the ability to weed out posts of non-interest (ex. Woohoo! Taco Bell for lunch!).
  • Groups get visually highlighted when they contain new statuses.
  • URL shortening service runs of an interface which means you can (programmatically) swap out different services, including professional ones what require a login and track clicks).
  • You can "snooze" users if they post annoying tweets (filters statuses into "Snoozed" group automatically for a given amount of time - additional hour per snooze).
  • Heavily commented code so you can easily follow the logic.

I am sure I will be making more updates to this over time. Since I first created the front-end for this, I have learned a lot more about some cool jQuery features; so, hopefully, I will begin to clean up the interface using things like the data() method and other good stuff.




Reader Comments

Congratulations Ben.

You've put so much hard work into this, and I've been watching it ever since the first Alpha release. You should be very proud, and thank you for releasing it to the CF community.

@All,

Thanks guys. When I first coded this, ALL of the code was in the public CFCs. It was a total mess. I then took it all and broke it down to having public CFC and cached CFCs. The public CFC do little more than handle the AJAX response and make calls to the cached service CFCs. I think it's a much cleaner architecture.

Thanks. Been waiting for this moment!

Suggestion: Put the app in a folder called kinkytwits under the folder called 2009_02_02, so that it's easier to unzip and move into a meaningful folder on our web-root structures.

@jyoseph,

Thanks man, always glad to put stuff out there.

@Robert,

Sorry about that. I don't actually know great strategies for zipping. I never know if I am supposed to zip a folder or zip the contents of a folder. Then, when it gets unzip, do I zip to new folder?

The only think I know is that I hate when I unzip to a new folder (ex. site) and then I click into it and in it is another folder of the same name. Grrr! :)

@shuns,

You can't because it needs a username and password for Twitter. However, someone suggested turning this into a hosted service. Would be interested, not sure how that would work.

@Ray,

I'll try to rock that out tonight.

@Brandon,

Thanks my man.

@Ben: regarding hosted service - You just store the username/pass for the length of the session and don't store anything else but preferences in the db. Voila, hosted service. Now, I don't recommend this, but hey... there's a gazillion websites out there that follow this same model (twitpic.com, twittersheep.com, etc).

@Todd,

I like the idea of a hosted service... but, if Twitter has problems with traffic and its their full-time gig - that doesn't bode well for me handling traffic as a fun project :)

@Ben: Yup. Sounds about right. You'd have to have some kind of service that would monitor when Twitter was sucking and post a user to the message that twitter response time is slow as balls. Then again, none of the RIA twitter apps do. I think Twirl notifies me by saying that the API-usage got lowered, that's usually first sign of something going awry.

Arr is this for cfml 8 isnt it ?????????.
looks cool though. is their anything I can do or modify to make it work on 7. i feel left out, i want to tweet.

I keep getting error
Invalid token '{' found on line 26 at column 36

any ideas

seems the problem is to do with the cf8/9 javascript-style create structs and arrays.

eg.
myStruct = {};
myArray = [];

try replacing {} with structNew()
and [] with arrayNew(1)
or upgrading to cf8

can someone please post a modified Application page for use with cfml 7. I have been trying mikes idea. But i just cant get it. Or maby direct me to a good post on changeing the syntax to make cfml 7 friendly. I would love to go to version 8. But i have been working with gdiddy and they have set me up the most perfect cfml server. Flawless !_! so cant move

Can this setup be used to programmatically post tweets?

I'm hoping to use a few functions out of the twitter service CFC to post tweets completely unattended. Does that capacity for re-use exist in this CFC?

I've seen some that require the user to log in interactively to post the tweets.

Thanks,
Dan

@Matt Gifford

thanks thats awesome - What an incredible set up monkehtweets is.

oAuth and such is new territory for me.

If you will indulge and answer one more question: If i have it working now - how often will I need to update the tokens or secrets?

Thanks,
Dan

@Dan

Once you have the tokens and secrets generated through the Twitter Application console, you will only ever need to update them if you revoke access for that application to access that particular user.

OAuth does over-confuse things, but essentially if you have one user auto-tweeting from one application, you will never have to update the token values once they are set in the Application scope, unless you choose to delete / revoke that user.