thibaud-dauce/mattermost-php

Mattermost PHP driver to send incoming webhooks

1.3.0 2020-11-26 13:26 UTC

This package is auto-updated.

Last update: 2024-12-08 21:01:29 UTC


README

This driver for Mattermost allows you to send message for incoming webhooks.

Installation

Install project with composer

  composer require thibaud-dauce/mattermost-php

Usage/Examples

This is a full example from tests/test.php:

<?php

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

use GuzzleHttp\Client;
use ThibaudDauce\Mattermost\Mattermost;
use ThibaudDauce\Mattermost\Message;
use ThibaudDauce\Mattermost\Attachment;

$mattermost = new Mattermost(new Client);

$message = (new Message)
    ->text('This is a *test*.')
    ->channel('tests')
    ->username('A Tester')
    ->iconUrl('https://upload.wikimedia.org/wikipedia/fr/f/f6/Phpunit-logo.gif')
    ->attachment(function (Attachment $attachment) {
        $attachment->fallback('This is the fallback test for the attachment.')
            ->success()
            ->pretext('This is optional pretext that shows above the attachment.')
            ->text('This is the text. **Finaly!**')
            ->authorName('Mattermost')
            ->authorIcon('http://www.mattermost.org/wp-content/uploads/2016/04/icon_WS.png')
            ->authorLink('http://www.mattermost.org/')
            ->title('Example attachment', 'http://docs.mattermost.com/developer/message-attachments.html')
            ->field('Long field', 'Testing with a very long piece of text that will take up the whole width of the table. And then some more text to make it extra long.', false)
            ->field('Column one', 'Testing.', true)
            ->field('Column two', 'Testing.', true)
            ->field('Column one again', 'Testing.', true)
            ->imageUrl('http://www.mattermost.org/wp-content/uploads/2016/03/logoHorizontal_WS.png')
            ->action([
                'name' => 'Some button text',
                'integration' => [
                    'url' => 'https://my-post-api.example.org',
                    'context' => [
                        'user_id' => '123',
                        'secret_key' => 'bépo22',
                    ],
                ]
            ]);
    });

$mattermost->send($message, 'https://your_mattermost_webhook_url');

You can play with it by running php tests/test.php after setting your incoming webhook URL for your server.