The Get Satisfaction API is here!

Our shiny, shiny API, previously announced and much-discussed and anticipated, is ready for the prime time! Check out the extensive documentation for it on our brand spankin’ new developer’s site, powered by our pals over at Mashery.

Our goal with the API is to expose every part of the Get Satisfaction service, so that companies and customers alike who have clever ideas about how to integrate, build on top of, and/or extend the Get Satisfaction service can just do that. All sorts of possibilities await: Recreate your company’s area in Get Satisfaction entirely on your own site. Or recreate Get Satisfaction for more than just one company — do it for a whole class of products and services, and prove your expertise across an entire category. Maybe you don’t like the way our posting or topic listing page works? Make your own! Dig in deep and integrate relevant topics right into your online product catalog, or mash our topics up with your already existing discussion or comment groups. Built a couple of widgets to show off your answers on your own blog. Or create some clever visualizations that help you better understand what your customers are saying (I hear Google can help with that.)

In other words, do whatever seems like it’ll be fun, interesting, stunning, and/or useful. And while you’re doing that, we’re going to keep working to make it better, faster, and easier to use our API. To that end, we’ve got a couple of things going on:

  • We’ve put together both Ruby and PHP libraries for the API, to help you get up and running quicker.
  • We’ve fully embraced OAuth as our third party identification protocol of choice, to ensure seamless, user-friendly, and secure account integration between Get Satisfaction and all the companies that choose to work with us. No need to create Yet Another Account to use Get Satisfaction — now you can pass your customers directly into our system and auto-create/link accounts together (with their permission, of course.) You can read more about how to work with our OAuth implementation, and we’ll be talking more about the benefits of OAuth right on this here blog in the next couple of days.
  • And just to be coy and teasing: we’ve got a few more API-related tricks up our sleeve in the coming weeks and months, so keep an eye out for those.

Of course, we’re ready to discuss all your API-related questions, problems, ideas, likes, and dislikes right here in Get Satisfaction. I may have said this before, but it bears repeating: We can’t wait to see what you come up with! So once your creation has made it out into the world, please be sure to let everybody know.

Satisfaction through code.

Howdy, I’m Scott Fleckenstein, Code monkey for Satisfaction. I’ve got a couple of things to talk about in this post, so let me begin by introducing you to a bit about Satisfaction’s attitude when it comes to making software. It can be easily summarized as “Standing on the shoulders of giants”; we recognize that our skills in making software owe a lot to DHH, Matz, _why, and oh so many others. Because of these people and the beauty of open source software I am a much better developer than I could have wished for.

I’m very glad and proud to work for a company that embraces open source, and realizes that there is business value in contributing to the open source community and spirit. In the past they have given me a pretty long leash to play with, letting me develop things like voo2do2ical, railmail, and exceptional. I am looking forward to creating plugins and snippets out of the interesting pieces of code that spring forth while developing Satisfaction.

That brings me to my next point: Erber. This will be Satisfaction’s first among many contributions back to the community, a plugin for ruby on rails that makes it trivially easy to register additional file extensions for rendering in the same manner as rhtml. In my case, I wanted to be able to render javascript files in the same manner as I do html (with rhtml), and css (with css_dryer). More on this in a coming post.

Anyways, the following is an example of how to register an extension with Erber:


Erber.register :njs, :rrtf, :rpls

just include the above in your environment file and at that point, you create templates that end in .njs, .rrtf, and .rpls. Pretty simple, really. The code is up on google project hosting at http://code.google.com/p/erber/, and you can install the plugin with the following command:

script/plugin install http://erber.googlecode.com/svn/trunk/

Well I’m off. I’ll be in touch in the future.