smadeira / planning-center-api
Planning Center JSON API 的 PHP API 包装器
Requires
- php: >=7.3.0
- guzzlehttp/guzzle: ~7.0
- vlucas/phpdotenv: ^5.0
Suggests
- illuminate/filesystem: Install this in non-Laravel Environments
README
一个用于访问 Planning Center 数据的 PHP 包装器。
安装
包含包
此包通过 Composer 安装,以下假设您已经为项目安装并初始化了 Composer。有关如何安装 Composer 和创建初始 composer.json 的帮助,请参阅Composer 网站。
要将部务平台 API 添加到您的项目中,只需添加此包即可
composer require smadeira/planning-center-api
或者,您可以直接编辑 composer.json 文件以添加部务平台 API
"require": {
"php": ">=7.0.0",
"smadeira/planning-center-api": "^2.0.0"
},
更新包
使用 Composer 包括 API 包装器后,执行 composer update 以下载 API 包装器功能所需的依赖项。
composer update
更新命令将下载所有依赖项(包括 API 包装器代码)到 vendor 目录。完成后,您就可以开始开发了。
注意:定期运行 "composer update" 以下载 API 包装器的最新版本及其所有依赖项是个好主意。这就是 Composer 的美妙之处。它为您管理所有这些,您不必自己管理。
配置
要配置 API 包装器以在您的环境中运行,需要做一些事情。
连接参数
此包使用 vlucas/phpdotenv 来管理配置变量。在您的项目根目录下创建一个 .env 文件,内容如下。确保您使用的是安装的正确 URI、客户端 ID 和密钥。
# Planning Center API Parameters
PCO_APPLICATION_ID=YOU_PCO_APPLICATION_ID
PCO_SECRET=YOUR_PCO_SECRET
加载 API 包装器
在您的代码顶部,您需要做一些事情以获取对 API 包装器的访问权限。您需要包含自动加载功能并从 .env 文件中加载配置设置
以下是一个脚本顶部的示例。
require_once __DIR__ . '/vendor/autoload.php'; use PlanningCenterAPI\PlanningCenterAPI as PCO; // Get environment variables $dotenv = Dotenv\Dotenv::createUnsafeImmutable(__DIR__); $dotenv->load();
用法
用法很简单。构建并执行您的请求。
执行选择查询
API 包装器使用与在线 Planning Center API 页面相同的语法和格式。要执行简单的查询,您需要定义不同的组件并执行。此示例将获取 People 模块中所有姓氏为 Smith 的人(目前支持 People 和 Services),包括他们的地址、电子邮件和电话号码。它按姓氏降序排列(Z - A)
// Get all people named Smith and sort by first name in descending order. Then, print the results in array format (you would do additional processing // of the data depending on your needs. $pco = new PCO(); $people = $pco->module('people') ->table('people') ->where('last_name', '=', 'Smith') ->includes('addresses,emails,phone_numbers') ->order('-first_name') ->get(); (!$people) ? print_r( $pco->errorMessage() ) : print_r($people);
整个脚本
以下是整个脚本...
<?php require_once __DIR__ . '/vendor/autoload.php'; use PlanningCenterAPI\PlanningCenterAPI as PCO; // Get environment variables $dotenv = Dotenv\Dotenv::create(__DIR__); $dotenv->load(); $pco = new PCO(); $people = $pco->module('people') ->table('people') ->where('last_name', '=', 'Smith') ->includes('addresses,emails,phone_numbers') ->order('-first_name') ->get(); (!$people) ? print_r( $pco->errorMessage() ) : print_r($people);