1. Go to this page and download the library: Download nwilging/laravel-slack-bot library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
nwilging / laravel-slack-bot example snippets
t
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Notification;
use Nwilging\LaravelSlackBot\Contracts\Notifications\SlackApiNotificationContract;
class SlackNotification extends Notification implements SlackApiNotificationContract
{
use Queueable;
public function via($notifiable)
{
return ['slackBot']
}
public function toSlackArray($notifiable): array
{
return [
'contentType' => 'text',
'message' => 'test plain text message',
'channelId' => 'C012345',
'options' => [], // Message Options
];
}
}
t
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Notification;
use Nwilging\LaravelSlackBot\Contracts\Notifications\SlackApiNotificationContract;
class SlackNotification extends Notification implements SlackApiNotificationContract
{
use Queueable;
public function via($notifiable)
{
return ['slack']; // Or, `via['slackBot']` if you have configured this in .env
}
public function toSlackArray($notifiable): array
{
return [
'contentType' => 'text',
'message' => 'test plain text message',
'channelId' => 'C012345',
'options' => [], // Message Options
];
}
}
t
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Notification;
use Nwilging\LaravelSlackBot\Contracts\Notifications\SlackApiNotificationContract;
class SlackNotification extends Notification implements SlackApiNotificationContract
{
use Queueable;
public function via($notifiable)
{
return [
'slack', // Using laravel/slack-notification-channel driver
'slackBot', // Using nwilging/laravel-slack-bot driver
];
}
/**
* The method to build a slack message for laravel/slack-notification-channel
*/
public function toSlack($notifiable)
{
//
}
/**
* The method to build a slack message for nwilging/laravel-slack-bot
*/
public function toSlackArray($notifiable): array
{
return [
'contentType' => 'text',
'message' => 'test plain text message',
'channelId' => 'C012345',
'options' => [], // Message Options
];
}
}
t
use Nwilging\LaravelSlackBot\Support\SlackOptionsBuilder;
$builder = new SlackOptionsBuilder();
$builder
->username('My Bot') // Set a custom username
->iconUrl('https://...') // URL to icon (overrides iconEmoji)
->iconEmoji(':white_check_mark:') // Sets icon to an emoji
->unfurlMedia()
->unfurlLinks()
->threadTs('ThreadTS')
->threadReplySendToChannel() // Whether or not to send reply to channel when replying to a thread
->linkNames()
->parse('...')
->markdown() // Enable markdown (or disable by passing `false`)
->metadata([]);
// Pass this to `SlackApiService`
$apiServiceCompliantOptionsArray = $builder->toArray();
t
use Nwilging\LaravelSlackBot\Support\LayoutBuilder\Builder;
use Nwilging\LaravelSlackBot\Support\LayoutBlocks\Blocks;
use Nwilging\LaravelSlackBot\Support\LayoutBlocks\Elements;
$layouBuilder = new Builder();
// Create a button element with text
$buttonElement = new Elements\ButtonElement(
$layoutBuilder->withPlainText('Button Text'), // Helper method to create a TextObject
'action-id'
);
// Add the button element to an actions block
$actionsBlock = new Blocks\ActionsBlock([$buttonElement]);
$layoutBuilder
->header('Header Text')
->divider()
->addBlock($actionsBlock);
// Pass this to `sendBlocksMessage`
$apiServiceCompliantBlocksArray = $layoutBuilder->getBlocks();
t
declare(strict_types=1);
namespace App;
use Nwilging\LaravelSlackBot\Support\SlackCommandRequest;
use Symfony\Component\HttpFoundation\Response;
class TestCommandHandler implements SlackCommandHandlerContract
{
public function handle(SlackCommandRequest $commandRequest): Response
{
return response('OK');
}
}
t
namespace App\Providers;
use App\TestCommandHandler;
use Illuminate\Support\ServiceProvider;
use Nwilging\LaravelSlackBot\Contracts\Services\SlackCommandHandlerFactoryServiceContract;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
/** @var SlackCommandHandlerFactoryServiceContract $slackCommandFactory */
$slackCommandFactory = $this->app->make(SlackCommandHandlerFactoryServiceContract::class);
$slackCommandFactory->register(TestCommandHandler::class, 'command-name');
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.