Php/zend framework/zend google spreadsheets
提供: 初心者エンジニアの簡易メモ
googleドライブのスプレットシートのデータ取得
事前準備
googledriveにスプレッドシートを用意し、 1行目にcol1、col2を追加
ソース
class GoogleSpreadSheet { private $_email; private $_pass; private $_ssid; private $_wid; public function __construct($email, $pass, $ssid, $wid) { require_once 'Zend/Loader.php'; Zend_Loader::loadClass('Zend_Gdata_Docs'); Zend_Loader::loadClass('Zend_Gdata_Spreadsheets'); Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); $this->_email = $email; $this->_pass = $pass; $this->_ssid = $ssid; $this->_wid = $wid; } public function getSheetIds() { $service = Zend_Gdata_Spreadsheets::AUTH_SERVICE_NAME; $client = Zend_Gdata_ClientLogin::getHttpClient($this->_email, $this->_pass, $service); $service = new Zend_Gdata_Spreadsheets($client); $docQuery = new Zend_Gdata_Spreadsheets_DocumentQuery(); $docQuery->setSpreadsheetKey($this->_ssid); $sheetFeed = $service->getWorksheetFeed($docQuery); $ret = array(); foreach($sheetFeed->entries as $sheetEntry) { $temp = array( "name" => $sheetEntry->getTitle(), "id" => $sheetEntry->getId(), ); $ret[] = $temp; } return $ret; } public function printSheet() { $listQuery = new Zend_Gdata_Spreadsheets_ListQuery(); $listQuery->setSpreadsheetKey($this->_ssid); $listQuery->setWorkwid($this->_wid); $listFeed = $service->getListFeed($listQuery); foreach($listFeed as $rowData) { $rowEntry = $rowData->getCustom(); foreach($rowEntry as $cellData) { echo $cellData->getColumnName()."=".$cellData->getText().'\n'; } echo '\n'; } } public function add($row) { $service = Zend_Gdata_Spreadsheets::AUTH_SERVICE_NAME; $client = Zend_Gdata_ClientLogin::getHttpClient($this->_email, $this->_pass, $service); $sheet = new Zend_Gdata_Spreadsheets($client); $data = array( "date" => date('Y-m-d H', time()), ); $data = array_merge($data, $row); return $sheet->insertRow($data, $this->_ssid, $this->_wid); } } $email = "sample1***@gmail.com"; $pass = "****"; $ssid = '0AtX0u**************NGtIa1E'; $wid = "od6"; $row = array( "col1" => "hoge", "col2" => "huga" ); $sheet = new GoogleSpreadSheet($email, $pass, $ssid, $wid); print_r($sheet->getSheetIds(), 1); $sheet->add($row);