The personal ramblings of Jon Carlos mobile & web developer and technology enthusiast.

Monday, 16 November 2009

Working with KickApps Social Network and Umbraco

So over the last few weeks I've been working with the KickApps platform for a couple of projects. I figured I would share some of the problems I've come up against and some of the simple things that are possible with Umbraco and KickApps.

Firstly KickApps is really easy to setup all you do is go to KickApps.com and sign up for an Affiliate account and you get a 30 day free trial.

Once you've got you Social network setup you should head on over to KickDeveloper.com this is a community of developers that are working with various languages and systems and integrating them with KickApps.

Now I should point out that KickApps offer a few different APIs and depending on the size of the system you're building and number of hits you'll be recieveng different APIs are available to you.

With a standard account you recieve an API key for the SSO(Sing Sign On) system and you can also utalise the RSS Rest interface to call any of the data on your social network. KickApps also provide some nice utility classes for C# and other lauguages to use the SSO system. In addition to this there is JavaScript API for community pages hosted by KickApps.

If you are wanting to use the KickApps platform but not use their pages you can communicate directly with the KickApps system using the REST API. You have to enter into an enterprize contract with them for this.

RSS Feeds

So working with RSS in Umbraco is a piece of cake. In the umbraco.library namespace there is a Method called GetXmlDocumentByUrl all you do is send in a url string to an XML feed and it will leave you with an object you can work with using Xpath. Depending on what calls you make to the RSS will depend data you recieve but in general you will recieve a fully populated RSS document with some additional namespaces added. Ths most important of these are mrss and karss.

In addition to using GetXmlDocumentByUrl you can Cache the feeds using the Feed Cache package for Umbraco.

MRSS

MRSS is a modification to RSS that allows additional media to be added to the feed. More info can be found at Wikipedia and Yahoo.

KARSS

KARSS is also a modification to RSS and adds some really important nodes to the documents. Some of the most useful are the addition of:
ka:totalitems - This is the total number of items that are in the request
ka:uploadedByUrl - The URL to the Members profile page

So thats a very basic overview of how you can use Umbraco to get data from KickApps.

KickApps SSO and Umbraco

Umbraco has a built in Membership system that's been integrated with the ASP.net Membership Provider. There are some control thats have been written for Umbraco that helped me work with the membership system and we're also very simple to integrate. You can find them in the umbraco extensions repository on codeplex. Note these may be a little out of date for Umbraco v4 but keep and eye out for SociaFront for Umbraco ;-)

KickApps give you a a great ASP.Net Helper Class for communicating with their SSO API but don't give much in the way of documentation on how to use it. The KickApps Soap SSO page also contains helper classes for php and other languages.

One of the first things I found when using the SSO helper was that it was trying to write some xml files to the root c: directory. This location on my computer was locked from IIS so first I had to change lines 155 and 162 to use HostingEnvironment.ApplicationPhysicalPath in stead of the hard coded c:\

Next I needed to work out exactly how to use this class. Fortunatley a member of the EPiServer community had already been through the problems I was approaching and I found some good examples of how to use the KickApps SSO Helper here.

Once I'd finished getting sign up, sign in and sign out working I needed to add some information to the KickApps Member profile. I was needing to add tags to a member but I ran in to some difficulty here. In KickApps tags are dealt with by the content part of the system not the member part. This meant that to add a tag to the system I had to use the REST API not the SSO API.

This is something that could definatley be improved as I really don't think you should have to use 2 APIs when trying to add content to one object even if in your systems they are seperate. Another thing that is a little unclear in the documentation for SSO is what fields are required for Sign Up although reciently and I guess after some customer feedback the documentation has been updated check out Edit/Update profile.

So these are some of my experiences of KickApps and Umbraco so far on this development. If you fancy a look check out www.thisiscentralstation.com I hope you like it. The design is by ISO Design and development, technology is by screenmedia.

I also launched www.pocket-place.com this week for our friends over at Tern Digital
If you're a mobile developer in Scotland you should check these guys out. They are well affiliated with the Innovation Centre in Glasgow and well worth getting in touch with. This site is also Umbraco based with a KickApps community.

1 comments:

dconlisk said...

Nice work Jon some good info on there and gives us something to aim at with SocialFront. It also hammers home the point of using Umbraco - ease of use, flexibility, extensibility, and of course price. No enterprise contracts here.
Hopefully in the future we'll see blog posts comparing the feature sets of SocialFront and Kickapps, it would be a great achievement to come up with a free, open-source alternative that can compete with these expensive proprietary systems.