CSVでアップロードした時にTwitterでつぶやく

EC-CUBEに「Twitter つぶやきプラグイン」をインストールしてみましたが、ライブラリが古く修正が必要でした。

「Twitter つぶやきプラグイン」
https://www.ec-cube.net/products/detail.php?product_id=293

/data/downloads/plugin/Twitter/module/Services/Twitter.php
の115行目を変更

public static $uri = 'http://api.twitter.com/1

public static $uri = 'http://api.twitter.com/1.1

twitterがSSLしか受け付けなくなったので、179行目でsslを有効化

'use_ssl' => false,

'use_ssl' => true,

(これは後で関数の引数で変更できることに気づきました。)

商品登録からはtwitterに投稿できるようになりましたが、CSVによる登録ではできません。フックポイントを使うのも面倒だったので、直接関数をコードに貼り付けました。

今度はpearでService_Twitterをインストール

data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_UploadCSV_Ex.php
—————————————————–

……
//Service_Twitterをインクルード
if (!class_exists('Services_Twitter', false)) {
require_once 'Services/Twitter.php';
}
if (!class_exists('HTTP_OAuth_Consumer', false)) {
require_once 'HTTP/OAuth/Consumer.php';
}
if (!class_exists('Services_JSON', false)) {
require_once 'Services/JSON.php';
}

class LC_Page_Admin_Products_UploadCSV_Ex extends LC_Page_Admin_Products_UploadC
SV
{
private $twitter; //データ受け渡し用にグローバルで宣言

//LC_Page_Admin_Products_UploadCSV.phpよりコピペ

public function doUploadCsv(&$objFormParam, &$objUpFile)
{
……
if (!$errFlag) {
$this->tweetLogin();
rewind($fp);
// CSVからの読み込み、保存
$errFlag = $this->lfReadCSVFile($objFormParam, $fp, $objQuery); // lfReadCSVFileの中ですると2回やることが分かったのでこちらで。
}

public function lfReadCSVFile(&$objFormParam, &$fp, $objQuery = null) {
……
$col_max_count = $objFormParam->getCount();
// 行数
if ($con_max_count > 100) { // ここから追加
printf("登録できるのは100行までです。\n");
$errFlag = true;
return;
}// ここまでtwitter apiの制限対策です。(たぶん350まで)
// 結局ラジオボタンで切り替えることにしました。
……
if (!$dry_run) {
……
$this->tweetProduct($arrParam['product_id']);
}

function tweetLogin() { // tweettwitter()から認証部分を分離。
global $twitter; // グローバル変数呼び出し。
$twitter = new Services_Twitter_Ex(ull, null, array('use_ssl' => true)); // TwitterにSSLでOAUTH認証。
……
     $twitter->setOAuth($oauth);
  }

function tweetTwitter($msg) {
global $twitter; // グローバル変数呼び出し。

if (mb_strlen($msg) > 140) {
……

荒っぽいやりかたですが、あとは出力メッセージを改造して何とかうまく行きました。twitterの制限で大量アップロードが出来なくなったので、商品登録より一件ずつつぶやいた方が良いかもしれません。