teamup/webhook-php

Client for receiving and processing Teamup webhook events

Maintainers

Package info

github.com/TeamupCom/webhook-utils-php

pkg:composer/teamup/webhook-php

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v1.0.0 2024-12-16 13:34 UTC

This package is auto-updated.

Last update: 2026-03-12 15:05:25 UTC


README

This library provides some auxiliary code to receive, validate and process the data sent by Teamup in a webhook call. You can also check our API Docs for more details related to the API and Webhook itself.

Requirements

To create a webhook in your Teamup calendar, start by visiting the calendar page: Settings > Integrations > Webhooks which lists all available webhooks in the current calendar.

Use the + New button to create a new webhook, and fill in the relevant information. The Endpoint requries a web-accessible URL, where Teamup will send the webhook payloads by using a POST request.

After the webhook configuration is saved, a secret value will be provided in the webhook settings. The secret is used as a shared key to compute a keyed-hash (or HMAC) of the webhook payload using the HMAC-SHA256 algorithm. This enables you to validate the data-integrity of the webhook's payload.

Note: for local development you can use tools to route internet traffic to your local development machine, such as:

Installation

Install the latest version with Composer:

$ composer require teamup/webhook-php

Usage

This library provides a Webhook class to handle the webhook requests and helpers to parse and validate the received payload from Teamup.com.

An example implementation may look like:

$webhook = new Webhook(new Parser('my-secret'));

$webhook->registerHandler(Trigger::Any, new MyLogHandler());
$webhook->registerHandler(Trigger::EventCreated, new OnEventCreatedHandler());

$webhook->handle($request);

You can also use directly the parser for a simpler approach:

$content = file_get_contents('php://input');

$parser = new Parser('my-secret');

// should throw InvalidSignatureException if the secret is incorrect or the data is corrupted
$parser->verifyIntegrity(
    $content,
    getRequestHeader(Header::TeamupSignature->value),
);

// If the integrity is verified, you can parse it or just process the raw payload
$payload = $parser->parse($content);