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の制限で大量アップロードが出来なくなったので、商品登録より一件ずつつぶやいた方が良いかもしれません。