A standard interface library for communicating with multiple social networks.
There are few tools that allow one to follow several social networks - typically only supporting, at most, 3 or 4 services - and even fewer that support posting to multiple services. Some social networks allow forwarding posts to other services, but they are seldom formatted properly when they arrive.
SociaLib aims to provide a standardized, cross-platform code library for posting to, and retrieving posts from, social networks. Specifically, SociaLib has the following goals:
- Provide a standard, modular API.
- The code necessary to post to Twitter, Facebook, etc. follows the same design and processes - including the ability to specify the desired image hosting service.
- Post objects can be processed, compared, converted and otherwise managed in a common way, regardless of which service they came from or are going to.
- Use proper posting syntax/formatting. Links are posted appropriately for the target platform(s). Images are uploaded and/or linked to, as appropriate.
- Be extensible. Services are defined as a standardized, documented module and can be added via a plugin mechanism (or merged into the code base).
- Support for multiple platforms. Accomplished through the use of Portable Class Libraries - providing support for desktops and web applications as well as Android, iOS and Windows Phone apps.
My initial goal for SociaLib is to be able to post to multiple social networking services - including ones other than the Big Three (Facebook, Twitter & LinkedIn) - using my preferred URL shortener (which isn't currently supported by any of the tools I've used). Once those goals are met I'll move on to adding more functionality, such as the ability to retrieve timelines/newsfeeds (although Twitter seems pretty bullish on not wanting any more apps that have that functionality out there). I'm also open to possibly porting this library to other languages and/or platforms (Java, PHP, Perl and/or Javascript come to mind).
Issues, tasks and other project management is maintained at https://socialib.atlassian.net/.
You can support SociaLib's development by offering bounties on unresolved issues. If you'd like to support my open source work in general please see http://tiny.cc/support-cms
The current code base is being developed in MonoDevelop on both Linux and Windows machines. After getting a stable release, I'll be ensuring that the library runs on Xamarin.Android and then Xamarin.iOS. At that stage, I'll be looking for even more help - especially with testing.
This library is being developed with the following:
- On Linux
- Mono 2.10.8.1-5
dhx1precise1 - MonoDevelop 3.0.3.2+dfsg-1
dhx1precise1 - Pencil 2.0.3 - for diagrams
- Mono 2.10.8.1-5