EC-CUBE4で新着情報を公開したときにツイッターに投稿する方法

EC-CUBE4で新着情報を公開したときにツイッターに投稿する方法です。

今回はツイッター認証用ライブラリのTwitterOAuthを使って投稿するようにします。

まずはライブラリのインストールしてください。

composer require abraham/twitteroauth

ニュースを公開したらTweetするイベントリスナーを作成

次にCustomize/EventListener/TweetListener.phpを作成してください。

<?php

namespace Customize\EventListener;

use Eccube\Common\EccubeConfig;
use Eccube\Event\EccubeEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class TweetListener implements EventSubscriberInterface
{
    /**
     * @var EccubeConfig
     */
    private $eccubeConfig;

    public function __construct(EccubeConfig $eccubeConfig)
    {
        $this->eccubeConfig = $eccubeConfig;
    }

    public static function getSubscribedEvents()
    {
        return [
            EccubeEvents::ADMIN_CONTENT_NEWS_EDIT_COMPLETE => 'onAdminContentNewsEditComplete',
        ];
    }

    public function onAdminContentNewsEditComplete(EventArgs $event)
    {

        $News = $event->getArgument("News");

        if($News->getVisible()) {
            $connection = new TwitterOAuth(
                $this->eccubeConfig->get('twitter.consumer_key'),
                $this->eccubeConfig->get('twitter.consumer_secret'),
                $this->eccubeConfig->get('twitter.access_token'),
                $this->eccubeConfig->get('twitter.access_token_secret')
            );
            $connection->post("statuses/update", ["status" => $News->getTitle()." ".$News->getUrl()]);
        }

    }
}

services.yamlにTwitter用のパラメーターを追加

app/Customize/Resource/config/services.yamlを作成してCONSUMER_KEYとCONSUMER_SECRET、ACCESS_TOKEN、ACCESS_TOKEN_SECRET用のパラメーターを追加してください。

parameters:
  twitter.consumer_key: '%env(TWITTER_CONSUMER_KEY)%'
  twitter.consumer_secret: '%env(TWITTER_CONSUMER_SECRET)%'
  twitter.access_token: '%env(TWITTER_ACCESS_TOKEN)%'
  twitter.access_token_secret: '%env(TWITTER_ACCESS_TOKEN_SECRET)%'

.envにCONSUMER_KEYとCONSUMER_SECRET、ACCESS_TOKEN、ACCESS_TOKEN_SECRETを追加

.envにCONSUMER_KEYとCONSUMER_SECRET、ACCESS_TOKEN、ACCESS_TOKEN_SECRETを追加してください。

TWITTER_CONSUMER_KEY=abcdefghijklmn
TWITTER_CONSUMER_SECRET=abcdefghijklmn
TWITTER_ACCESS_TOKEN=abcdefghijklmn
TWITTER_ACCESS_TOKEN_SECRET=abcdefghijklmn

以上で完成です。

2件のコメント

  1. 素敵なプラグインを紹介して頂きありがとうございます。
    少しいじって改行してDescriptionも表示するようにしました。

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

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