The Community REST SDK is a framework for third party .NET developers to use in their sites or projects to interact with a Telligent based community using its REST API. It makes using REST easier by handling the authentication flow automatically via Oauth, giving a consistent unified interface for making requests, allows you to handle the response in its XML or JSON form, or interact with the response using some more .NET friendly methods such as streams, XElements and the dynamic object. The most powerful of these is dynamic since it means you can interact with the response like it was an object without the need to create your own classes and deserialize the response.
The SDK is also completely open source meaning if you want to know how it works you can head over to GitHub to view the source. All of the technical documentation can be found in the GitHub wiki and if you have problems you can file a bug there as well. We also accept community contributions so if there is something broken you want to take a try at fixing, or add a little something you think is valuable, fork the repository and submit your change as a pull request.
Since this SDK is based on .NET, it will only run in a .NET environment so if you currently have a non-windows environment or a site running a technology other than a .NET web technology, unfortunately at this time the SDK is not for you. But you can still interact with your community using the REST API directly.
Here is a list of the minimum system requirements:
- A windows environment or .NET based web technology running .NET 4.5 or later
- Telligent Community 8 or higher(Any Edition)*
Since the SDK is just using REST, it can possibly work with versions as early as Telligent Community 7, however we recommend using at least Telligent Community 8(Formerly Zimbra Social).
It is important to understand that the SDK does not understand the differences between community versions so even though the SDK may allow you to make a call to any endpoint, if that endpoint is only supported in a version of community later than the version installed you will receive a not found or error response. From time to time we may add SDK features that rely on newer functionality than your community may currently have. In those cases we will make every effort to have those features unavailable or fail gracefully on earlier versions so that you can continue to utilize the latest SDK version. The SDK also has a supported API and we use the same logic as Telligent Community. These are classes located in any Telligent.*.Extensibility.* namespace. We reserve the right to alter anything as needed not in this namespace. If it is an API we will not make breaking changes if its avoidable, instead we will issue new versions of the API in question. This rule will also be applied to any pull request.
There are 2 ways to get it. As already mentioned you can download the source from GitHub and compile it from there into a dll. The easier method is to install it directly into your Visual Studio solution using NuGet.
You can install it by searching for Telligent SDK in the NuGet Package manager GUI or use the command line pacakage manager:
PM> Install-Package CommunityServerSDK
For Sitecore developers integrating with Sitecore specifically, we have a Sitecore specific SDK. Really its an implementation of the same SDK with some additional Sitecore specific items. You should download the Sitecore version from GitHub or via NuGet. It is important to point out that the Sitecore version when obtained from NuGet will first install the Community REST SDK as a prerequisite so all of the functionality discussed in this and future topics is full available.
PM> Install-Package CommunityServerSDKSitecore
The installation and configuration of the SDK can vary depending on what you want to do. In the Hosts topic you will be introduced to the main API object and depending on that host there may be more or less configuration needed. Consult the topic on the individual host you are using for its specific configuration.
Single Sign On(SSO) is an option available only when using the Default REST Host. It also functions differently than the SSO modules in Telligent Community. You do not configure any of the SSO modules in community, instead its is handled by the SDK and a user synchronization with community. This will be covered in depth in the Default REST Host topic, but in general the process is handled by utilizing signed urls that community uses to log users in and out. While it involves cookies on both the community and SDK side, these cookies are not shared. This means the SSO can be handled across domains.
For more information on installation on configuration, visit the GitHub Wiki