laravelからchatworkへCommandの実行お知らせ
◆目的
前回、Commandをやったので、通知をやろうと思う
今回は、実行時間をお知らせする。
◆Batchとは
Commandクラスを毎日指定した時間に(cronで管理)裏で実行してくれるやつ
今回は手動実行
◆chatworkのapiトークンの作成
apiトークン = 認証情報のようなもの
◆Commandクラス作成
コマンド
php artisan make:command SampleBatch
class SampleBatch extends Command
{
protected $signature = 'sample-batch';
protected $description = 'チャットワークに通知する';
private $apiToken = 'サイトを参考に取得したapiトークン';
private $myChatUrl = 'https://api.chatwork.com/v2/rooms/サイトを参考に自分のルームID/messages';
public function __construct()
{
parent::__construct();
}
public function handle()
{
//バッチの実行時間
$startTime = Carbon::now();
}
}
◆外部apiにhttps(post)通信したいので、Guzzleを導入する
Guzzleとは
コマンド
composer require guzzlehttp/guzzle
◆通知を実装
public function handle()
{
//バッチの実行時間
$startTime = Carbon::now()->toString();
$client = new Client();
$client->post($this->myChatUrl, [
'form_params' => [
'body' => $startTime
],
'headers' => [
'X-ChatWorkToken' =>$this->apiToken
]
]);
}
ClientクラスがGuzzleを利用するためのクラスで、post送信メソッド(第一引数でurl指定)第二引数はオプションを指定していく。
・format_paramsの中のbodyの中に送信したい内容を記述する(文字列方じゃないとエラーになる)
・headersにchatworkのapiTokenくっつけて、認証してもらってる。
コマンド
php artisan sample-batch
通知完了OK
[参考にさせていただいた記事]
https://qiita.com/zaburo/items/13bfdc349e1421421c98
https://qiita.com/komatzz/items/faa8f97efdfc5da84aad
Author And Source
この問題について(laravelからchatworkへCommandの実行お知らせ), 我々は、より多くの情報をここで見つけました https://qiita.com/shibaHaya/items/7d6b766c1c5fc0544cbb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .