Webhooker is a small library for hosting webhook callbacks to receive and dispatch callbacks from
external services such as Twitch or Slack. This is done by running a webserver using SparkJava
and serializing JSON with GSON, and then managing Client
s to map the request URL to callback(s).
The Gradle/Maven import string can be found at the `maven-central badge above!
public class Main {
/**
* This example assumes a reverse proxy is routing
* requests from `webhooks.elypia.org` to `localhost:4567`.
* If no reverse proxy is desired, `http://your.public.ip:4567/:uuid` is fine.
*
* @param args
*/
public static void main(String[] args) {
// `publicUrl` must specify route parameter `uuid`.
Webhooker hooker = new Webhooker("https://webhooks.elypia.org/:uuid", 4567);
// Add a new client to the client controller.
Client client = hooker.getController().add(new Client());
// Perform these callbacks whenever this client receives payload in the order provided.
client.addCallbacks((payload) -> System.out.println(payload.getRequest().body()));
// Get the callback url for this client, this will be provided to a service to POST to.
String callbackUrl = hooker.getUrl(client);
// Subscribe to payloads from a third party service.
TwitchNotifier notifier = new TwitchNotifier();
notifier.subscribe(callbackUrl, "https://api.twitch.tv/helix/users/follows?first=1&from_id=31415");
}
}