Wallogit.com
2017 © Pedro Peláez
COLROW PHP SDK は、PHP 環境にて COLROW API を利用するための SDK です。, (*1)
Composer を使います。まずはプロジェクトのルートディレクトリにて、以下の composer.json を作成し、php composer.phar install を実行してください。, (*2)
{
"require": {
"rashiku/colrow-php-sdk" : "1.0.*"
}
}
以下のように記述することで COLROW PHP SDK が利用できるようになります。, (*3)
require_once 'vendor/autoload.php';
何らかの事情で Composer が使えない場合は、ファイル一式をダウンロードし、Colrow フォルダをそのままお使いください。上記の autoload.php の代わりに以下のように記述し、必要なファイル群を読み込んでください。, (*4)
require_once 'Colrow/ColrowClient.php'; require_once 'Colrow/ColrowObject.php'; require_once 'Colrow/ColrowQuery.php'; require_once 'Colrow/ColrowDrive.php'; require_once 'Colrow/ColrowException.php';
※PHP のバージョンは 5.4 以上である必要があります。, (*5)
SDK から必要なファイルを読み込んだ後、ColrowClient を初期化する必要があります(ColrowDrive だけは例外)。, (*6)
ColrowClient::initialize(
'your_account',
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'シート1'
);
3つの引数はそれぞれ「COLROW に登録した Google アカウント」「スプレッドシートの key」「ワークシート名」になります。, (*7)
利用する機能に応じたクラスを use 文にて宣言します。大抵のケースでは、以下の3つのクラス(のうちいずれか)を宣言することになるでしょう。, (*8)
use Colrow\ColrowClient; use Colrow\ColrowQuery; use Colrow\ColrowObject;
オブジェクトとして全件取得:, (*9)
$query = new ColrowQuery(); $objects = $query->find();
最初の1件を取得:, (*10)
$query = new ColrowQuery(); $object = $query->first();
クエリ(後述)を指定して取得:, (*11)
$query = new ColrowQuery();
$query->equalTo('会社名', 'らしく');
$query->orderBy('日付');
$query->reverse(true);
$objects = $query->find();
件数をカウント:, (*12)
$query = new ColrowQuery(); echo $query->count();
シートに新しい行を追加:, (*13)
$row = new ColrowObject();
$row->set('会社名', 'らしく販売');
$row->set('担当者', '鈴木一郎');
$row->set('日付', '2016/1/1');
$row->save();
行の内容を更新:, (*14)
$query = new ColrowQuery();
$objects = $query->find();
$row = $objects[10];
$row->set('担当者', '田中太郎');
$row->save();
行を削除:, (*15)
$query = new ColrowQuery(); $objects = $query->find(); $row = end($objects); $row->destroy();
ColrowQuery クラス経由で取得したオブジェクトは、get メソッドによって内容を参照できます。, (*16)
foreach ($objects as $object) {
echo $object->get('会社名') . "\n";
}
その他にも、以下のメソッドが利用可能です。, (*17)
シートの内容を抽出するため、ColrowQuery クラスのインスタンスに対して、SQL の where 句に相当する以下のメソッドが用意されています。, (*18)
上記の条件を複数列記することで AND として扱われます。, (*19)
$query->equalTo('カテゴリ', 'A');
$query->notEqualTo('状態', '休業中');
$query->lessThanOrEqual('優先度', 5);
OR の場合は ColrowQuery のインスタンスを個別に作成し、orQuery メソッドを使います。, (*20)
$query1 = new ColrowQuery();
$query1->equalTo('会社名', 'らしく');
$query2 = new ColrowQuery();
$query2->equalTo('会社名', 'らしく販売');
$query = new ColrowQuery();
$query->orQuery($query1, $query2);
$objects = $query->find();
その他にも以下のメソッドが利用可能です。, (*21)
Google ドライブにファイルをアップロードするために用意された ColrowDrive クラスは、前述した他のクラスとはやや使用感が異なります。, (*22)
use Colrow\ColrowDrive;
if (isset($_FILES['image'])) {
$file = $_FILES['image'];
$fp = fopen($file['tmp_name'], 'r');
$file_body = base64_encode(fread($fp, filesize($file['tmp_name'])));
fclose($fp);
$parent_id = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$response = ColrowDrive::upload('your_account', $file['name'], $file['type'], $file_body, $parent_id);
echo json_encode($response);
} else {
echo '
';
}
$parent_id はファイルのアップロード先、つまり Google ドライブのフォルダの ID になります。そのフォルダのページの URL の https://drive.google.com/drive/u/0/folders/ 以降に書かれているのがそれです。また、ColrowDrive::upload() の第1引数には、COLROW に登録した Google アカウントを指定してください。, (*23)