rashiku / colrow-php-sdk
This package is not auto-updated.
Last update: 2024-09-20 11:16:33 UTC
README
COLROW PHP SDK 是一个用于在 PHP 环境中调用 COLROW API 的 SDK,链接:COLROW。
安装方法
使用 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'
);
三个参数分别是「在 COLROW 注册的 Google 账户」「工作表的 key」「工作表名称」。
基本用法
使用 use 语句声明使用功能的类。大多数情况下,您可能需要声明以下三个类中的任何一个。
use Colrow\ColrowClient;
use Colrow\ColrowQuery;
use Colrow\ColrowObject;
以对象形式获取全部:
$query = new ColrowQuery();
$objects = $query->find();
获取第一条:
$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 Drive 而准备的 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 Drive 文件夹的 ID。它位于该文件夹页面的 URL 的 https://drive.google.com/drive/u/0/folders/
之后。另外,ColrowDrive::upload() 的第一个参数应指定在 COLROW 注册的 Google 账户。