The .NET SDK provides a C# interface for the Gigya API. The library makes it simple to integrate Gigya services in your .NET project. This document is a practical step-by-step guide for programmers who wish to integrate the Gigya service into their .NET project. Follow the steps below to get started, and use the Library Reference while implementing.
Note: The Gigya SDK requires .NET framework 3.5 or higher.
The SDK is available for download in two forms:
- Binary only: GSCSharpSDK.dll (add the DLL file to your project as a reference)
- The entire project including sources: GSCSharpSDK_src.zip.
If you are upgrading from a former version, make sure to read the SDK's Change Log.
The SDK is Strong Named, This means that the SDK's DLL is signed and you may verify its authenticity using the following Public Key:
Please follow these steps to integrate this library in you .NET application:
- Download the SDK (above).
- Obtain a Gigya APIKey and Secret key.
Include the Gigya SDK namespace in your C# source. Add the following line of code at the beginning of the source files that use the SDK:
- Log the user in.
- Use Gigya's API - Send Requests.
- Optional: Incorporate security measures.
Obtaining Gigya's API Key and Secret Key
Making API calls requires an API Key and a Secret Key which are obtained from the Dashboard section on the Gigya website. The Secret Key must be kept secret and never transmitted to an untrusted client or over insecure networks. The API Key and the Secret Key are required parameter in each request (further ahead in this document you will find guidance for sending requests).
Logging the User In
First interaction with Gigya must always be logging in. If the user is not logged in, you can not access their social profile nor perform social activities, such as setting their status. Sending requests requires an identified Gigya user (the identification of whom is performed using the UID parameter) with an active session. A user session is created when a user logs in via the Gigya service. Log users in through your client application using our Web SDK methods: socialize.login, socialize.notifyLogin, or using our ready made Login Add-on.
To learn more about the login process, see Social Login.
Sending a Request
After you have logged in the user, you may use the GSRequest class to access the user profile and perform various activities. This is implemented using GSRequest's Send method. The following code sends a request to set the current user's status to "I feel great":
Step 1: Defining the request
Create a GSRequest instance:
The parameters of the GSRequest constructor are:
- method - the Gigya API method to call, including namespace. For example: 'socialize.getUserInfo'. Please refer to the REST API reference for the list of available methods.
- Whether or not to send the request over HTTPS.
Step 2: Adding parameters
After creating the GSRequest object, use the setParam method to add parameters to the request:
In the REST API reference you may find the list of available Gigya API methods and the list of parameters per each method.
Step 3: Sending the request
The method returns a GSResponse object, which is handled in the next step.
By default, requests to Gigya APIs are sent using the "us1.gigya.com" domain. If your site has been set up to use another of Gigya's data centers, you must to specify that the request should be sent to that specific data center by adding the following line of code before calling the Send method:
us1.gigya.com- For the US data center.
eu1- For the European data center.
au1- For the Australian data center.
ru1- For the Russian data center.
cn1- For the Chinese data center.
If you are not sure of your site's data center, see Finding Your Data Center.
See the GSRequest documentation for more information.
Step 4: Handling the Response
Use the GSResponse object to check the status of the response, and to receive response data:
The GSResponse object includes data fields. For each request method, the response data fields are different. Please refer to the Gigya REST API reference for the list of response data fields per method.
For example - handling a socialize.getUserInfo response:
The response of 'socialize.getUserInfo' includes a 'user' object.
Optional - Incorporating Security Measures
Signature validation is only necessary and supported when validating the signature of a response that was received on the client side and then passed to the server. Server-to-server calls do not contain the UIDSignature or signatureTimestamp properties in the response.
The Gigya service supports a mechanism to verify the authenticity of the Gigya processes, to prevent fraud. When Gigya sends you information about a user, your server needs to know that it is actually coming from Gigya. For that cause, Gigya attaches a cryptographic signature to the responses that include user information. We highly recommend validating the signature. The SigUtils class is a utility class for generating and validating signatures.
For example, Gigya signs the socialize.getUserInfo method response. The following code validates the signature received with the 'socialize.getUserInfo' method response:
The parameters of the ValidateUserSignature method are:
- UID - the user's unique ID
- signatureTimestamp - The GMT time of the response in UNIX time format (i.e. the number of seconds since Jan. 1st 1970). The method validates that the timestamp is within five minutes of the current time on your server.
- secretKey - The key to verification is your partner's "Secret Key". Your secret key (provided in BASE64 encoding) is located at the bottom of the Dashboard section on Gigya's website (Read more above).
- UIDSignature - the cryptographic signature.
All the parameters, with the exception of the secretKey, should be taken from the 'User' object received with the 'getUserInfo' method response.
The method returns a Boolean value, signifying if the signature is valid or not.
In a similar fashion, when using the 'getFriendsInfo' method, The method response include a collection of 'Friend' objects. Each Friend object will be signed with a cryptographic signature. To verify the signature of a friend object, please use the ValidateFriendSignature method.
Sending Requests over HTTPS
To use Gigya service over HTTPS, all you need to do is:
When creating a GSRequest object, set the useHTTPS Boolean parameter to be true .
Optional - Incorporating A User Or Application Key
Appendix - Publish User Action Example
The following code sample sends a request to publish a user action to the newsfeed stream on all the connected providers which support this feature.
The socialize.publishUserAction method has a complex parameter called userAction which defines the user action data to be published. To define the userAction parameter create a GSObject object and fill it with data. There are two ways to fill the GSObject with data, you can either use the put method or construct the GSObject with a JSON string, as shown in the two examples below:
Option A - Using GSObject's put method
Option B - Construct a GSObject from a JSON string
To learn more about publishing user actions, please read the Advanced Sharing guide.