flo-180 / oa-sdk-php
OpenAgenda API 的 PHP 封装
Requires
- php: ^7.1.10 || ^8.0
- guzzlehttp/guzzle: >=6.5
Requires (Dev)
- phpunit/phpunit: >=7.0
This package is auto-updated.
Last update: 2024-09-23 08:46:31 UTC
README
OpenAgendaSDK 是 OpenAgenda API v2 的 PHP 封装。
先决条件
需要 Composer 以及运行在您的 Web 服务器上 PHP 7.1 或更高版本。Composer 的安装说明可以在 https://getcomposer.org.cn/doc/00-intro.md#installation-linux-unix-macos 找到。
安装
将 OpenAgendaSdk 作为项目依赖项安装
composer require openagenda/sdk-php
基本用法
创建 OpenAgendaSdk 实例
首先使用您的 OpenAgenda 公钥参数创建一个 OpenAgendaSdk 实例
$public_key = 'mypublickey'; $oa = new \OpenAgendaSdk\OpenAgendaSdk($public_key);
此外,您可以设置一些客户端选项,例如代理设置
$oa = new \OpenAgendaSdk\OpenAgendaSdk($public_key, [RequestOptions::PROXY => '127.0.0.1:8888']);
由于 OpenAgenda 使用 Guzzle 客户端,请阅读其文档以了解有关请求选项的更多信息: https://docs.guzzlephp.org/en/stable/
请求 OpenAgenda 数据
OpenAgendaSdk 当前提供了 3 种方法来获取议程配置、议程事件或单个议程事件。这些方法返回 OpenAgenda API 数据作为 JSON。解码 json 或反序列化对象(s)取决于您。
获取议程配置
$agendaUid = 123456; $json = $oa->getAgenda($agendaUid);
获取议程的事件列表
$agendaUid = 123456; $json = $oa->getEvents($agendaUid);
您可以在请求中添加一些参数,例如过滤器、排序、搜索、分页。阅读 OpenAgenda API 文档以获取选项的完整列表: https://developers.openagenda.com/10-lecture/
$agendaUid = 123456; $json = $oa->getEvents($agendaUid, ['search' => 'Concert']); $newjson = $oa->getEvents($agendaUid, ['search' => 'Concert', 'sort' => 'timings.asc', 'feature' => 1]);
获取议程事件
$agendaUid = 123456; $eventUid = 654321; $json = $oa->getEvent($agendaUid, $eventUid);
测试
先决条件
为了运行测试,您必须在 PHP dotenv 文件(.env)或使用命令行中将 OPENAGENDA_SDK_ENV 值设置为 'test'。方法取决于您使用的框架。
PHP dotenv 示例
OPENAGENDA_SDK_ENV='test'
使用命令行
export OPENAGENDA_SDK_ENV='test'
运行测试
OpenAgendaSdk 测试基于 JSON 模拟。
运行测试
./vendor/bin/phpunit ./vendor/openagenda/sdk-php/tests
Testing /your-project-folder/vendor/openagenda/sdk-php/tests
...... 6 / 6 (100%)
Time: 00:00.026, Memory: 10.00 MB
OK (6 tests, 11 assertions)
测试完成后重置为 'default' 环境以获取真实的 API 数据。
OpenAgenda API 文档
OpenAgenda API v2 文档在此处可用: https://developers.openagenda.com