bizly / airtable-php
Airtable API的PHP包装器
2.4.7
2022-09-15 13:29 UTC
Requires
- php: >=5.4
- davedevelopment/stiphle: ^0.9.2
README
Airtable API的PHP客户端。欢迎评论、请求或错误报告。
开始使用
请注意,Airtable不允许通过其公共API进行模式操作,您必须使用其界面创建表。
在Airtable界面中创建基础后,打开API文档以获取您的Base ID。
Base ID是一个以'app'开头,后跟字母和数字混合的代码(appsvqGDFCwLC3I10)。
安装
如果您使用Composer,可以运行以下命令
composer require sleiman/airtable-php
您也可以直接下载并将其解压缩到您的Web目录中。
将包装器添加到项目中
如果您使用Composer,运行自动加载器
require 'vendor/autoload.php';
或包含Airtable.php文件
include('../src/Airtable.php'); include('../src/Request.php'); include('../src/Response.php');
初始化类
use \TANIOS\Airtable\Airtable; $airtable = new Airtable(array( 'api_key' => 'API_KEY', 'base' => 'BASE_ID' ));
获取表中的所有条目
我们从“联系人”表获取所有条目。
$request = $airtable->getContent( 'Contacts' ); do { $response = $request->getResponse(); var_dump( $response[ 'records' ] ); } while( $request = $response->next() ); print_r($request);
使用参数进行筛选、排序等
// You don't have to use all the params, they are added as a reference $params = array( "filterByFormula" => "AND( Status = 'New' )", "sort" => array(array('field' => 'Count', 'direction' => "desc")), "maxRecords" => 175, "pageSize" => 50, "view" => "Name of your View" ); $request = $airtable->getContent( 'Contacts', $params); do { $response = $request->getResponse(); var_dump( $response[ 'records' ] ); } while( $request = $response->next() ); print_r($request);
创建新条目
我们将创建联系人表中的新条目
// Create an array with all the fields you want $new_contact_details = array( 'Name' =>"Contact Name", 'Address' => "1234 Street Name, City, State, Zip, Country", 'Telephone #' => '123-532-1239', 'Email' =>'email@domain.com', ); // Save to Airtable $new_contact = $airtable->saveContent( "Contacts", $new_contact_details ); // The ID of the new entry echo $new_contact->id; print_r($new_contact);
现在可用批量创建,文档见下方
更新联系人
使用条目ID更新条目
$update_contact_details = array( 'Telephone #' => '514-123-2942', ); $update_contact = $airtable->updateContent("Contacts/{entry-id}",$update_contact_details); print_r($update_contact);
现在可用批量更新,文档见下方
扩展关系(贪婪加载)
响应将包括来自另一个表关联的所有记录信息。在此示例中,通过单个调用,将填充“客户详情”字段的“客户详情”表关系。
如果您没有传递关联数组,我们假设字段和表名相同。
$expended = $airtable->getContent( "Customers/recpJGOaJYB4G36PU", false, [ 'Customer Details' ] );
如果出于某种原因字段名称与表名不同,您可以通过传递关联数组来实现。
$expended = $airtable->getContent( "Customers/recpJGOaJYB4G36PU", false, [ 'Field Name' => 'Table Name', 'Customer Meetings' => 'Meetings' ] );
我们听说您喜欢扩展关系,因此现在您可以扩展您的扩展关系。以下是可以实现的内容。
$expend_expended = $airtable->getContent( "Customers/recpJGOaJYB4G36PU", false, [ 'Customer Details', 'Meetings' => [ 'table' => 'Meetings', 'relations' => [ 'Calendar' => 'Calendar', 'Door' => [ 'table' => 'Doors', 'relations' => [ 'Added By' => 'Employees' ] ] ] ] ] );
但请注意,加载过多的关系可能会显着增加响应时间。
删除条目
使用条目ID删除条目
$delete_contact = $airtable->deleteContent("Contacts/{entry-id}");
现在可用批量删除,文档见下方
快速检查(新功能)
一行查找记录或多个记录。当您想知道用户是否已经注册或是否使用了相同的SKU时很有用。响应将返回“计数”和“记录”。
$check = $airtable->quickCheck("Contacts",$field,$value); $check = $airtable->quickCheck("Contacts","Email","jon@wordlco.com"); if($check->count > 0){ // the value is already there var_dump($check->records); } else { // it's not there }
批量创建、更新、删除
Airtable API现在允许每个API请求创建、更新和删除10条记录。
创建
$content = $a->saveContent( 'Links', [ [ 'fields' => [ 'Name' => 'Tasty' ] ], [ 'fields' => [ 'Name' => 'Yolo' ] ] ] );
更新
$update = []; foreach ( $content->records as $record ) { $update[] = [ 'id' => $record->id, 'fields' => [ 'Slug' => strtolower( $record->fields->Name ) ] ]; } $response = $a->updateContent( 'Links', $update );
删除
$delete = []; foreach ( $response->records as $record ) { $delete[] = $record->id; } $response = $a->deleteContent( 'Links', $delete );
致谢
版权(c)2019 - 由Sleiman Tanios & Guillaume Laliberté编写