testmonitor / teams-client
The TestMonitor Teams Client.
Installs: 1 957
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.0
- testmonitor/php-microsoft-teams-connector: ^0.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.4
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2024-12-17 09:41:23 UTC
README
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 leverages Microsoft Teams Adaptive Cards, making it a great fit for Power Automate.
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.
- Locate the channel where you want notifications delivered, then click the three dots (More options) next to it.
- Select Workflows from the dropdown menu.
- In the search bar, type "webhook".
- Choose the Post to a channel when a webhook request is received template.
- Enter a name for the workflow or use the default name.
- Click Next.
- Confirm the selected Team and Channel.
- Click Add workflow 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\Card; $card->addElement( new \TestMonitor\Teams\Resources\Card\Elements\TextBlock('Simple heading') ); $teams->postMessage($card);
Adaptive cards allow way more comprehensive messages. Here's another example:
$card = new \TestMonitor\Teams\Resources\Card; $title = new \TestMonitor\Teams\Resources\Card\Elements\TextBlock('Simple heading'); $facts = new \TestMonitor\Teams\Resources\Card\Elements\FactSet( new \TestMonitor\Teams\Resources\Card\Elements\Fact('Status', 'Completed'), new \TestMonitor\Teams\Resources\Card\Elements\Fact('Category', 'Feature request'), ); $action = new \TestMonitor\Teams\Resources\Card\Actions\OpenUrl('https://www.testmonitor.com/'); $card->addElement($title) ->addElement($facts) ->addAction($action); $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 documentation on Adaptive Cards.
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
- Thijs Kok - Lead developer - ThijsKok
- Stephan Grootveld - Developer - Stefanius
- Frank Keulen - Developer - FrankIsGek
- Muriel Nooder - Developer - ThaNoodle
License
The MIT License (MIT). Refer to the License for more information.