Monday, 16 November 2009

While looking at the market for social networking applications there are some big issues with them. The main ones were display, portability and plugability. When working with any SaaS/white label product you are at the development companies mercy as to when, how and what extensions are released and when.

For anyone who has a client that wants a product that does not exist on the market or wants more functionality than is currently available this is a bit of a problem. Now API's are all good and well, and for many products they make mashing so much easier but even if a social network has an API they are generally really complex to consume.

This is especially difficult if you want a little from here and a little from there. You have to learn each API and it's intricacies and apply them to one system. Once this is built you have one system that is good for what the client that wanted it setup in that way, but what about the next client that wants to use a different video provider or blogging system? These are the issues that we are currently trying to brain storm and work out.

In the meant time we've decided that Umbraco is the way forward for us at the moment. We're working on a prototype that developers can use to create social networks based on the Umbraco Content Management System.

Later this month we intend to do another days dev to get a little more code cut but in addition and due to the feedback we've had from developers interested in the idea, we'll be concentrating on functionality and how we can get others involved in the project and how to manage it.

If you're interested please give me a or David a shout and later in the month we should have a better idea of how this is going to be extensible as a project and as an idea.

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 requestka: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.

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.