agrodata / microsoft-powerautomate-channel
Package to use microsoft teams with laravel channel
Requires
- php: ^8.2
- illuminate/notifications: *
- illuminate/validation: *
README
powerautomate-notification-channel
Biblioteca usada para enviar uma requisição HTTP para o Microsoft PowerAutomate com intuito de enviar notificação via Microsoft Teams
Configuração Power Automate
O fluxo dentro do PowerAutomate deverá estar configurado exatamente igual ao seguinte documento para funcionar: https://agrodata.atlassian.net/wiki/spaces/COF/pages/1557266433/Microsoft Teams
Notificação
-> solicitação HTTP para PowerAutomate
-> envia notificação para o Microsoft Teams
Instalação
Instale a versão mais atual do pacote com o composer:
$ composer require agrodata/microsoft-powerautomate-channel
ou você pode adicionar a seguinte linha diretamente no arquivo composer.json
:
{
"require": {
"agrodata/microsoft-powerautomate-channel": "0.3"
}
}
Configuração
Após a instalação, registre o provider diretamente no arquivo: config/app.php
:
'providers' => [
// ...
Agrodata\MicrosoftPowerAutomateChannel\MicrosoftNotificationChannelServiceProvider::class,
]
O seguinte nó será adicionado no arquivo config/services.php
pelo provider
(caso não seja adicionar, deverá ser inserido manualmente).
<?php
...
[
'microsoft-powerautomate-channel' => [
'powerautomate-url' => env('MICROSOFT_POWERAUTOMATE_URL'),
'tenant-id' => env('MICROSOFT_TENANT_ID'),
'client-id' => env('MICROSOFT_CLIENT_ID'),
'client-secret' => env('MICROSOFT_CLIENT_SECRET'),
'cache-key' => env('MICROSOFT_POWERAUTOMATE_TOKEN_CACHEKEY', 'microsoft-powerautomate-token'),
]
];
powerautomate-url
: URL HTTP gerada pelo inicio do fluxo do Power Automate (conforme a documentação)tenant-id
: Tenant ID do Azureclient-id
: Client ID da aplicação criada emApp registrations
dentro do Azure (conforme documentação)client-secret
: Secret ID gerado em emApp registrations -> Certificates & secrets
dentro do Azure (conforme documentação)cache-key
: Após realizar a autenticação da aplicação do azure o token de acesso será armazenado em cache na chave definida nessa variável
#.env
MICROSOFT_POWERAUTOMATE_URL=powerautomate-flow-url
MICROSOFT_TENANT_ID=azure-tenant-id
MICROSOFT_CLIENT_ID=azure-client-id
MICROSOFT_CLIENT_SECRET=*****
MICROSOFT_POWERAUTOMATE_TOKEN_CACHEKEY=cache-key
Como usar
Use o comando Artisan para criar uma notificação:
php artisan make:notification SomeNotification
Returne [microsoft-powerautomate]
no método public function via($notifiable)
do arquivo de notificação:
public function via($notifiable)
{
return ['microsoft-powerautomate'];
}
Adicione o método public function toMicrosoftPowerautomate($notifiable)
em sua notificação:
//...
public function toMicrosoftPowerautomate($notifiable)
{
return "Mensagem automatica enviada via powerAutomate & microsoftTeams";
}
exemplo de envio de notificação
*Atenção: Para enviar uma notificação a model de usuário deve possuir a Trait "Notifiable"
class User extends Authenticatable
{
use Notifiable;
//...
#notify one user
$user->notify((new SomeNotification(..)));
#notify multiple users
Notification::send($users, new SomeNotification(..);
Extra: Helpers
Após a instalação e configuração poderá ser usada a helper power_automate_notification
ou a classe NotificationApiService
para enviar mensagem para o Microsoft Teams pelo fluxo do Power Automate
Example:
//microsoft_teams(string $receiverId, string $message, string|null $graphToken = null): bool;
$result = power_automate_notification($receiverId, $message, $graphToken);
#or
$result = return (new MicrosoftPowerAutomateService($graphToken))->sendRequestMessage($receiverId, $message);