Skip to content

The TestMonitor Microsoft Teams client.

License

Notifications You must be signed in to change notification settings

testmonitor/teams-client

Repository files navigation

TestMonitor Teams Client

Latest Stable Version CircleCI StyleCI codecov License

This package provides a very basic, convenient, and unified wrapper for sending messages to Microsoft Teams using an incoming webhook.

It's mostly a based on Sebastian Bretschneider's PHP Microsoft Teams Connector, but uses Guzzle instead of the PHP CURL extension. This package exposes the excellent Card objects from PHP Microsoft Teams Connector to build all kinds of messages using a fluent PHP syntax.

Table of Contents

Installation

To install the client you need to require the package using composer:

$ composer require testmonitor/teams-client

Use composer's autoload:

require __DIR__.'/../vendor/autoload.php';

You're all set up now!

Usage

Before you can post messages, you need to set up an incoming webhook in Teams:

  • Launch the Microsoft Teams application.
  • Select the Teams tab.
  • Select a team.
  • Right-click on the channel you want the messages to be delivered and select Connectors.
  • Select the "Incoming Webhook" connector and click Add.
  • Provide your webhook with a name and optionally, a logo.
  • Click Create and your webhook URL will be provided.

Use the webhook URL to create a new client instance:

$teams = new \TestMonitor\Teams\Client('https://webhook.url/');

Examples

Post a simple message to Teams:

$card = new \TestMonitor\Teams\Resources\SimpleCard([
    'title' => 'Some title',
    'text' => 'Hello World!',
]);

$teams->postMessage($card);

The built-in connector package allows way more comprehensive messages. Here's another example:

$user = (object) ['name' => 'John Doe'];

$card = new \TestMonitor\Teams\Resources\CustomCard('New Issue', "{$user->name} created a new issue");

$card->setColor('7FB11B')
    ->addFacts('Issue **I365**', [
        'Status' => '**Open**',
        'Priority' => '**High**',
        'Resolution' => '**Unresolved**',
    ])
    ->addAction('Open in TestMonitor', 'https://www.testmonitor.com/');

$teams->postMessage($card);

For more information on composing these messages, head over to PHP Microsoft Teams Connector for more examples or refer to Microsoft's Build cards and task modules documentation.

Tests

The package contains integration tests. You can run them using PHPUnit.

$ vendor/bin/phpunit

Changelog

Refer to CHANGELOG for more information.

Contributing

Refer to CONTRIBUTING for contributing details.

Credits

License

The MIT License (MIT). Refer to the License for more information.