skrepr/teams-connector

A simple PHP package for sending messages to Microsoft Teams

0.3.2 2023-02-09 17:09 UTC

This package is auto-updated.

Last update: 2024-04-09 19:47:28 UTC


README

skrepr

Teams connector

Releases LICENSE Issues PR Commits Stars Forks

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.