cx-java-sdk

Cxense Java SDK

License

License

Categories

Categories

Java Languages
GroupId

GroupId

com.cxense.sdk
ArtifactId

ArtifactId

cx-java-sdk
Last Version

Last Version

1.0.3
Release Date

Release Date

Type

Type

jar
Description

Description

cx-java-sdk
Cxense Java SDK
Project URL

Project URL

https://github.com/cXense/cx-java-sdk
Source Code Management

Source Code Management

http://github.com/cXense/cx-java-sdk/tree/master

Download cx-java-sdk

How to add to project

<!-- https://jarcasting.com/artifacts/com.cxense.sdk/cx-java-sdk/ -->
<dependency>
    <groupId>com.cxense.sdk</groupId>
    <artifactId>cx-java-sdk</artifactId>
    <version>1.0.3</version>
</dependency>
// https://jarcasting.com/artifacts/com.cxense.sdk/cx-java-sdk/
implementation 'com.cxense.sdk:cx-java-sdk:1.0.3'
// https://jarcasting.com/artifacts/com.cxense.sdk/cx-java-sdk/
implementation ("com.cxense.sdk:cx-java-sdk:1.0.3")
'com.cxense.sdk:cx-java-sdk:jar:1.0.3'
<dependency org="com.cxense.sdk" name="cx-java-sdk" rev="1.0.3">
  <artifact name="cx-java-sdk" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.cxense.sdk', module='cx-java-sdk', version='1.0.3')
)
libraryDependencies += "com.cxense.sdk" % "cx-java-sdk" % "1.0.3"
[com.cxense.sdk/cx-java-sdk "1.0.3"]

Dependencies

compile (1)

Group / Artifact Type Version
org.glassfish : javax.json jar 1.0.4

Project Modules

There are no modules declared in this project.

cx-java-sdk

Note: that this API is currently experimental and not supported by Cxense. A fully supported version might be released in the future.

Features

The Cxense Java SDK enables Java developers to easily work with the Cxense APIs. You can get started in minutes using Maven or by downloading a single zip file.

Getting Started

Sign up for Cxense

Before you begin, you need a Cxense account. Please see the Cxense homepage for information about how to create a Cxense account and retrieve your Cxense credentials.

Install the SDK

Using the SDK with Maven
<dependencies>
  <dependency>
    <groupId>com.cxense.sdk</groupId>
    <artifactId>cx-java-sdk</artifactId>
    <version>1.0.3</version>
  </dependency>
</dependencies>
Using the SDK with just one .jar file

Download the single zip file and add the .jar file to the classpath.

Building From Source

Check out the code from GitHub and build it using Maven.

mvn clean package

Sample usage

Send a page view event

Send a basic page view event

import com.cxense.sdk.Cxense;

public class SDKSample1 {
    public static void main(String[] args) throws Exception {

        //Cxense.pageViewEvent(<site ID>, <page url>, <end user ID>).send();
        Cxense.pageViewEvent("1234", "http://www.site.com/", "abcd").send();

    }
}
Send an advanced page view event
import com.cxense.sdk.Cxense;

public class SDKSample2 {
    public static void main(String[] args) throws Exception {
        
        //Cxense.pageViewEvent(<site ID>, <page url>, <end user ID>);
        Cxense.pageViewEvent("1234", "http://www.site.com/", "abcd")
            .setReferrer("http://www.siteb.com/")
            .setScreenSize(1024, 768)
            .setWindowSize(927, 349)
            .setDevicePixelRatio(1.4)
            .setGeoPosition(7.6145, 110.7122)
            .addCustomParameter("section", "sports")
            .addExternalUserId("fbk", "ABCD") // Add FaceBook user ID
            .send();
    }
}
Send a page view event with maps of values

For custom parameters and external IDs, you can provide a map of values instead of individual values:

import com.cxense.sdk.Cxense;

public class SDKSample3 {
    public static void main(String[] args) throws Exception {

        Map<String, String> customParameters = new HashMap<String, String>() {{
            put("a", "1");
            put("b", "2");
            put("c", "3");
        }};

        Map<String, String> externalUserIds = new HashMap<String, String>() {{
            put("fbk", "1234");
            put("slk", "ABCD");
        }};
        
        //Cxense.pageViewEvent(<site ID>, <page url>, <end user ID>);
        Cxense.pageViewEvent("1234", "http://www.site.com/", "abcd")
            .addCustomParameters(customParameters)
            .addExternalUserIds(externalUserIds)
            .send();
    }
}

Generic API requests

Request and response as JSON strings

A generic API request sending the request as a JSON string and getting the response back as a JSON string

import com.cxense.sdk.Cxense;

public class SDKSample4 {
    public static void main(String[] args) throws Exception {

        Cxense cx = new Cxense("<username (email)>", "<api key>");
        String apiPath = "/site";
        String request = "{}";
        String response = cx.apiRequest(apiPath, request);

    }
}
Request and response as JSON objects

A generic API request sending the request as a JSON object and getting the response back as a JSON object

import com.cxense.sdk.Cxense;
import javax.json.Json;
import javax.json.JsonObject;

public class SDKSample5 {
    public static void main(String[] args) throws Exception {

        Cxense cx = new Cxense("<username (email)>", "<api key>");
        String apiPath = "/site";
        JsonObject requestObject = Json.createObjectBuilder().build();
        JsonObject responseObject = cx.apiRequest(apiPath, requestObject);

    }
}
API request using a persisted query

A persisted query can be setup that require no authentication. Only the persisted query ID need to be supplied.

import com.cxense.sdk.Cxense;

public class SDKSample6 {
    public static void main(String[] args) throws Exception {

        Cxense cx = new Cxense();
        String apiPath = "/site";
        String request = "{}";
        String persistedQueryId = "<persisted query id>";
        String response = cx.apiRequest(apiPath, request, persistedQueryId);

    }
}
Using a custom HTTP client

If you want to use a custom HTTP client, there is a helper method that will build the required authentication headers for you. Here is an example using Java's URLConnection:

import com.cxense.sdk.Cxense;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

public class SDKSample7 {
    public static void main(String[] args) throws Exception {

        String username = "<username (email)>";
        String apiKey = "<api key>";
        String apiBaseUrl = "https://api.cxense.com";
        String apiPath = "/site";
        String jsonStringQuery = "{}";

        String encodedJsonQuery = URLEncoder.encode(jsonStringQuery, "UTF-8");
        URLConnection connection = new URL(apiBaseUrl + apiPath + "?json=" + encodedJsonQuery).openConnection();
        connection.setRequestProperty("X-cXense-Authentication", Cxense.getHttpAuthenticationHeader(username, apiKey));
        connection.connect();
        String jsonResponse = new BufferedReader(new InputStreamReader(connection.getInputStream())).readLine();

    }
}

Resources

com.cxense.sdk

Cxense

Versions

Version
1.0.3
1.0.1