skrepr / teams-connector
A simple PHP package for sending messages to Microsoft Teams
Installs: 3 922
Dependents: 1
Suggesters: 0
Security: 0
Stars: 22
Watchers: 3
Forks: 2
Open Issues: 0
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- php-http/discovery: ^1.15
- psr/http-client-implementation: ^1.0
- psr/http-factory-implementation: ^1.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.3
- phpunit/phpunit: ^9.0
README
Teams connector
This package allows you to send notifications to Microsoft Teams.
Installation
You can install the package using the Composer package manager. You can install it by running this command in your project root:
composer require skrepr/teams-connector
Then create an incoming webhook on your Microsoft teams channel for the package to use.
Basic Usage
Create a simple card
<?php declare(strict_types=1); use Skrepr\TeamsConnector\Card; use Skrepr\TeamsConnector\CardInterface; use Skrepr\TeamsConnector\Client; $endPoint = 'https://...'; $httpClient = new \GuzzleHttp\Client(); $teamsClient = new Client($endPoint, $httpClient); $card = (new Card('Larry Bryant created a new task')) ->setText('Yes, he did') ->setThemeColor(CardInterface::STATUS_DEFAULT) ->setTitle('Adding Title to the card'); $teamsClient->send($card);
Adding a section
<?php declare(strict_types=1); use Skrepr\TeamsConnector\Card; use Skrepr\TeamsConnector\Client; use Skrepr\TeamsConnector\Section\Section; $endPoint = 'https://...'; $httpClient = new \GuzzleHttp\Client(); $teamsClient = new Client($endPoint, $httpClient); $card = new Card('Larry Bryant created a new task'); $section = (new Section('![TestImage](https://47a92947.ngrok.io/Content/Images/default.png)Larry Bryant created a new task')) ->setActivitySubtitle('On Project Tango') ->setActivityImage('https://teamsnodesample.azurewebsites.net/static/img/image5.png') ->addFact('Assigned to', 'Unassigned') ->addFact('Due date', 'Mon May 01 2017 17:07:18 GMT-0700 (Pacific Daylight Time)'); $card->addSection($section); $teamsClient->send($card);
Adding actions and inputs to the card
<?php declare(strict_types=1); use Skrepr\TeamsConnector\Actions\ActionCard; use Skrepr\TeamsConnector\Actions\HttpPostAction; use Skrepr\TeamsConnector\Card; use Skrepr\TeamsConnector\Client; use Skrepr\TeamsConnector\Inputs\TextInput; $endPoint = 'https://...'; $httpClient = new \GuzzleHttp\Client(); $teamsClient = new Client($endPoint, $httpClient); $card = new Card('Larry Bryant created a new task'); $card->setText('Yes, he did'); $actionCard = (new ActionCard('Add a comment')) ->addInput(new TextInput('comment', 'Add a comment here for this task')) ->addAction(new HttpPostAction('Add comment', 'http://...')); $card->addPotentialAction($actionCard); $teamsClient->send($card);
HTTP Clients
In order to talk to Microsoft Teams API, you need an HTTP adapter. We rely on HTTPlug which defines how HTTP message should be sent and received. You can use any library to send HTTP messages that implements php-http/client-implementation.
Testing
composer test
Credits
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
License
The MIT License (MIT). Please see License File for more information.