11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

laravel-slack-apiを使用して、Laravelからslackへ通知する

Posted at

はじめに

Laravelではslack-notification-channelというslackへ通知する仕組みが存在しています。
https://laravel.com/docs/5.8/notifications#slack-notifications

しかし、Incoming Webhookを使用しているためfile upload等をすることができません。
今回自分はアプリケーションログをfile形式でslackへ通知したかったので、laravel-slack-apiライブラリを使用してみました。
今回は使い方の紹介となります。
※最終コミットが2016年でしたが、問題なく動きました。

アプリケーションログをfile形式でslackへ通知した際のイメージです。
スクリーンショット 2019-05-26 12.58.11.png

設定

laravel-slack-apiのreadme.mdに沿って進めています。

また、slack botの設定はこの記事の最後に手順を書いております。

インストール

composer require vluzrmos/slack-api

providers、config等の追加

config/app.php
'providers' => [
     Vluzrmos\SlackApi\SlackApiServiceProvider::class,
 ]

//...

'aliases' => [
    'SlackApi'              => Vluzrmos\SlackApi\Facades\SlackApi::class,
    'SlackChannel'          => Vluzrmos\SlackApi\Facades\SlackChannel::class,
    'SlackChat'             => Vluzrmos\SlackApi\Facades\SlackChat::class,
    'SlackGroup'            => Vluzrmos\SlackApi\Facades\SlackGroup::class,
    'SlackFile'             => Vluzrmos\SlackApi\Facades\SlackFile::class,
    'SlackSearch'           => Vluzrmos\SlackApi\Facades\SlackSearch::class,
    'SlackInstantMessage'   => Vluzrmos\SlackApi\Facades\SlackInstantMessage::class,
    'SlackUser'             => Vluzrmos\SlackApi\Facades\SlackUser::class,
    'SlackStar'             => Vluzrmos\SlackApi\Facades\SlackStar::class,
    'SlackUserAdmin'        => Vluzrmos\SlackApi\Facades\SlackUserAdmin::class,
    'SlackRealTimeMessage'  => Vluzrmos\SlackApi\Facades\SlackRealTimeMessage::class,
    'SlackTeam'             => Vluzrmos\SlackApi\Facades\SlackTeam::class,
]
config/services.php
'slack' => [
    'token' => env('SLACK_TOKEN'),
]

slackで発行されたトークンを記載する

 .env
SLACK_TOKEN='xoxb-xxxxx'

使い方

$php artisan tinkerから簡単に動作確認できます。

シンプルなメッセージを送る

SlackChat::message('#test', 'ピピッカチュウ');
スクリーンショット 2019-05-27 22.25.20.png

テキストをfileとして送る

SlackFile::upload([
    'filename' => 'ピーカ.txt',
    'initial_comment' => 'ピカピカーチュ',
    'content' => "ピーカ、チューウ!ピーカ、チューウ!ピーカ、チューウ!ピーカ、チューウ!\n",
    'channels' => '#test'
]);
スクリーンショット 2019-05-27 22.14.42.png

slackボットの設定

下記はslackボットの設定方法です。

slack Appの作成

slack apiから設定を行う。
スクリーンショット 2019-05-27 21.48.53.png

Bot Userの作成

スクリーンショット 2019-05-27 21.50.54.png

scopeの設定

botから投稿する場合はchat:write:botを付与する。
スクリーンショット 2019-05-27 21.51.36.png

連携許可

スクリーンショット 2019-05-27 21.51.46.png

Bot User OAuth Access Token

Bot User OAuth Access Tokenをlaravel側のslack tokenに設定してください。
スクリーンショット 2019-05-27 21.52.00.png

Botを対象のチャンネルに追加

スクリーンショット 2019-05-27 21.52.29.png
11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?