rashiku/colrow-php-sdk

本包最新版本(1.0.0)没有提供许可证信息。

1.0.0 2016-02-06 06:00 UTC

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 账户。