rashiku / colrow-php-sdk
This package is not auto-updated.
Last update: 2025-05-02 13:57:20 UTC
README
COLROW PHP SDK は、PHP 環境にて COLROW API を利用するための SDK です。
インストール方法
Composer を使います。まずはプロジェクトのルートディレクトリにて、以下の composer.json を作成し、php composer.phar install を実行してください。
{
"require": {
"rashiku/colrow-php-sdk" : "1.0.*"
}
}
以下のように記述することで COLROW PHP SDK が利用できるようになります。
require_once 'vendor/autoload.php';
何らかの事情で Composer が使えない場合は、ファイル一式をダウンロードし、Colrow フォルダをそのままお使いください。上記の autoload.php の代わりに以下のように記述し、必要なファイル群を読み込んでください。
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 以上である必要があります。
初期化
SDK から必要なファイルを読み込んだ後、ColrowClient を初期化する必要があります(ColrowDrive だけは例外)。
ColrowClient::initialize(
'your_account',
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'シート1'
);
3つの引数はそれぞれ「COLROW に登録した Google アカウント」「スプレッドシートの key」「ワークシート名」になります。
基本的な使い方
利用する機能に応じたクラスを use 文にて宣言します。大抵のケースでは、以下の3つのクラス(のうちいずれか)を宣言することになるでしょう。
use Colrow\ColrowClient;
use Colrow\ColrowQuery;
use Colrow\ColrowObject;
オブジェクトとして全件取得:
$query = new ColrowQuery();
$objects = $query->find();
最初の1件を取得:
$query = new ColrowQuery();
$object = $query->first();
クエリ(後述)を指定して取得:
$query = new ColrowQuery();
$query->equalTo('会社名', 'らしく');
$query->orderBy('日付');
$query->reverse(true);
$objects = $query->find();
件数をカウント:
$query = new ColrowQuery();
echo $query->count();
シートに新しい行を追加:
$row = new ColrowObject();
$row->set('会社名', 'らしく販売');
$row->set('担当者', '鈴木一郎');
$row->set('日付', '2016/1/1');
$row->save();
行の内容を更新:
$query = new ColrowQuery();
$objects = $query->find();
$row = $objects[10];
$row->set('担当者', '田中太郎');
$row->save();
行を削除:
$query = new ColrowQuery();
$objects = $query->find();
$row = end($objects);
$row->destroy();
COLROW オブジェクト
ColrowQuery クラス経由で取得したオブジェクトは、get メソッドによって内容を参照できます。
foreach ($objects as $object) {
echo $object->get('会社名') . "\n";
}
その他にも、以下のメソッドが利用可能です。
- set(label, value) ... オブジェクトの label(列のラベル名)に value をセット
- save() ... オブジェクトを保存。シートの該当行の内容も更新(新規作成した場合は最終行に追加)
- destroy() ... オブジェクトを削除。シートの該当行も削除
- getId() ... オブジェクトの ID(=該当行に割り当てられた固有の ID)を参照
- toJson() ... JSON 文字列に変換(デバッグ用)
クエリ
シートの内容を抽出するため、ColrowQuery クラスのインスタンスに対して、SQL の where 句に相当する以下のメソッドが用意されています。
- equalTo(label, value) ... label の値が value に等しい
- notEqualTo(label, value) ... label の値が value に等しくない
- lessThan(label, value) ... label の値が value より小さい
- greaterThan(label, value) ... label の値が value より大きい
- lessThanOrEqualTo(label, value) ... label の値が value より小さいか等しい
- greaterThanOrEqualTo(label, value) ... label の値が value より大きいか等しい
- exists(label) ... label の値が空ではない
- doesNotExist(label) ... label の値が空である
上記の条件を複数列記することで AND として扱われます。
$query->equalTo('カテゴリ', 'A');
$query->notEqualTo('状態', '休業中');
$query->lessThanOrEqual('優先度', 5);
OR の場合は ColrowQuery のインスタンスを個別に作成し、orQuery メソッドを使います。
$query1 = new ColrowQuery();
$query1->equalTo('会社名', 'らしく');
$query2 = new ColrowQuery();
$query2->equalTo('会社名', 'らしく販売');
$query = new ColrowQuery();
$query->orQuery($query1, $query2);
$objects = $query->find();
その他にも以下のメソッドが利用可能です。
- orderBy(label) ... label の値でソート(デフォルトは昇順)
- reverse(boolean) ... true を指定することでソートを降順に変更
- offset(number) ... 指定した列数をスキップ
- limit(number) ... 取得する列数を指定
ColrowDrive について
Google ドライブにファイルをアップロードするために用意された ColrowDrive クラスは、前述した他のクラスとはやや使用感が異なります。
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 '<form method="post" action="" enctype="multipart/form-data">';
echo '<input type="file" name="image">';
echo '<input type="submit" value="アップロード">';
echo '</form>';
}
$parent_id はファイルのアップロード先、つまり Google ドライブのフォルダの ID になります。そのフォルダのページの URL の https://drive.google.com/drive/u/0/folders/
以降に書かれているのがそれです。また、ColrowDrive::upload() の第1引数には、COLROW に登録した Google アカウントを指定してください。