【EC-CUBE4.2】LINE Notifyを使ってお問い合わせがあったときに自分のLINEアカウントに通知する方法

LINE Notifyを使ってお問い合わせがあったときに自分のLINEアカウントに通知する方法です。

※今回のカスタマイズは EC-CUBE 4.2 以上が対象です。

LINE Notify のアクセストークンを取得

以下の記事を参考にLINE Notify のアクセストークンを取得してください。

Line Notifierをインストール

以下のコマンドを実行して Line Notifier をインストールしてください。

composer req kurozumi/line-notifier

notifier.yamlを編集

Line Notifier をインストールすると notifier.yaml が自動生成されるので notifier.yaml を編集してください。

カスタマイズディレクトリ内にservices.yamlを作成して追記しても動くと思います。

framework:
    notifier:
        chatter_transports: 
           line: '%env(LINE_DSN)%'

.env を編集

.env に以下を追記してください。TOKENは取得したアクセストークンに書き換えてください。

LINE_DSN=line://TOKEN@default

services.yaml を編集

services.yamlに以下を追記してください。

カスタマイズディレクトリ内にservices.yamlを作成して追記しても動くと思います。

services:
  Kurozumi\Notifier\Bridge\Line\LineTransportFactory:
    parent: notifier.transport_factory.abstract
    tags: ['chatter.transport_factory']

お問い合わせ内容が送信されたら自分のLINEアカウントに送信

お問い合わせ内容が送信されたら自分のLINEアカウントに送信するイベントを作成してください。

<?php

namespace Customize;

use Eccube\Event\EccubeEvents;
use Eccube\Event\EventArgs;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Notifier\ChatterInterface;
use Symfony\Component\Notifier\Message\ChatMessage;

class Event implements EventSubscriberInterface
{
    private $chatter;

    public function __construct(ChatterInterface $chatter)
    {
        $this->chatter = $chatter;
    }

    public static function getSubscribedEvents()
    {
        return [
            EccubeEvents::FRONT_CONTACT_INDEX_COMPLETE => 'onFrontContactIndexComplete'
        ];
    }

    public function onFrontContactIndexComplete(EventArgs $event)
    {
        $data = $event->getArgument('data');

        $message = (new ChatMessage($data['name01'] . 'さんからお問い合わせがありました。'))
            ->transport('line');

        $this->chatter->send($message);
    }
}

以上で完成です。

お気軽にコメントをどうぞ

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください