jamiehollern / eventbrite
一个用于与 Eventbrite API 交互的 PHP 库。
Requires
- php: >=5.5
- guzzlehttp/guzzle: ~6.0
- guzzlehttp/promises: ~1.0
- guzzlehttp/psr7: ~1.0
- mtdowling/jmespath.php: ~2.2
Requires (Dev)
- ext-curl: *
- mockery/mockery: ~0.9
- monolog/monolog: ~1.13
- oodle/krumo: *
- phpunit/phpunit: ~4.0
- psr/log: ~1.0
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-04-13 17:02:15 UTC
README
已弃用!此项目包含错误且不再积极维护。使用风险自负。
Eventbrite API v3 的轻量级 PHP 包装器,使用 Guzzle 6。
要求
- PHP >= 5.5
- 如果你不想要任何额外配置,请使用 cURL(请参阅 Guzzle 文档)
安装
通过 Composer 命令安装
composer require jamiehollern/eventbrite
通过 composer.json 安装
{
"require": {
"jamiehollern/eventbrite": "1.0.1"
}
}
完成此操作后
- 运行
composer install
- 将自动加载器添加到您的脚本中
require_once('vendor/autoload.php')
身份验证
此 API 不处理 OAuth 身份验证流程。它假定您的应用程序已经经过身份验证,并且您为要使用的任何帐户都有 OAuth 令牌。在实例化类时应传递此 OAuth 令牌。
您可以在 Eventbrite API 文档 中了解有关 Eventbrite 身份验证过程的更多信息。如果您只有一个应用程序需要身份验证,您可以通过在 Eventbrite 应用程序页面 上添加应用程序来简单地获取预制的 OAuth 令牌。
示例
实例化类
基本用法
要开始使用,您只需要将 OAuth 令牌传递给 Eventbrite 类
<?php use jamiehollern\eventbrite\Eventbrite; $eventbrite = new Eventbrite('MY_OAUTH_TOKEN'); ?>
您可以通过运行以下命令来检查一切是否正常工作
<?php use jamiehollern\eventbrite\Eventbrite; $eventbrite = new Eventbrite('MY_OAUTH_TOKEN'); // Returns true if you can connect. $can_connect = $eventbrite->canConnect(); ?>
高级选项
如果您在连接时需要更多高级选项,可以利用此库是围绕 Guzzle 的相当轻量级包装器的事实。
要将超时限制从默认的 30 秒增加到 60 秒
<?php use jamiehollern\eventbrite\Eventbrite; $eventbrite = new Eventbrite('MY_OAUTH_TOKEN', ['timeout' => 60]); ?>
如果您没有安装 cURL,您可以在实例化类时添加不同的 HTTP 请求处理器。有关更多信息,请参阅 Guzzle 文档。
<?php use jamiehollern\eventbrite\Eventbrite; use GuzzleHttp\HandlerStack; use GuzzleHttp\Handler\StreamHandler; $handler = new StreamHandler(); $stack = HandlerStack::create($handler); $eventbrite = new Eventbrite('MY_OAUTH_TOKEN', ['handler' => $stack]); ?>
发送请求
使用此库发送请求有三种方式,它们大致相同,但具有不同的抽象级别
makeRequest
call
get/post/put/patch/delete
以下每个示例都执行相同的调用,使用 Eventbrite 扩展。
makeRequest
方法
此方法是 call
方法的包装器,仅在参数上有所不同。它旨在比 call
略微明显,参数明确说明了要执行的操作。
<?php use jamiehollern\eventbrite\Eventbrite; $eventbrite = new Eventbrite('MY_OAUTH_TOKEN'); // Get all of the current users' ticket orders and ensure that the event // data and the event venue data are present in full. $eventbrite->makeRequest('GET', 'users/me/orders/', ['expand' => 'event.venue']); ?>
快捷方法
快捷方法只是命名了 HTTP 动词的方法,与 makeRequest
方法相同,但 makeRequest
的第一个参数是快捷方法的实际名称。可用方法包括 get
、post
、put
、patch
和 delete
。
<?php use jamiehollern\eventbrite\Eventbrite; $eventbrite = new Eventbrite('MY_OAUTH_TOKEN'); // Get all of the current users' ticket orders and ensure that the event // data and the event venue data are present in full. $events = $eventbrite->get('users/me/orders/', ['expand' => 'event.venue']); ?>
call
方法
《call》方法是最轻量级的Guzzle客户端包装,它接受三个参数:HTTP动词(例如GET、POST等)、端点和可选的数组配置,该配置直接映射到Guzzle请求选项。
<?php use jamiehollern\eventbrite\Eventbrite; $eventbrite = new Eventbrite('MY_OAUTH_TOKEN'); // Get all of the current users' ticket orders and ensure that the event // data and the event venue data are present in full. $eventbrite->call('GET', 'users/me/orders/', ['query' => ['expand' => 'event.venue']]); ?>
响应
对API的成功请求将返回包含以下信息的数组
- 响应代码
- 响应头
- 响应体
如果返回的内容是JSON(使用Eventbrite API几乎总是这样),那么这将解码为多维数组。
库通过获取Guzzle响应对象并从中提取最相关的数据来实现这一点。这对于大多数请求来说已经足够有用,但由于该库只是Guzzle的包装,如果您愿意,可以通过为parse_response
参数传递false
值来请求完整的Guzzle响应对象。
<?php use jamiehollern\eventbrite\Eventbrite; $eventbrite = new Eventbrite('MY_OAUTH_TOKEN'); // Make a request but instruct the call to not parse the response // and instead return the Guzzle response object. $eventbrite->call('GET', 'users/me/orders/', ['parse_response' => false]); ?>
如果您需要响应对象,但又希望得到常规数组或不想修改您的请求,库会为您存储最后一个请求。
<?php use jamiehollern\eventbrite\Eventbrite; $eventbrite = new Eventbrite('MY_OAUTH_TOKEN'); // Make a request as normal. $eventbrite->call('GET', 'users/me/orders/'); // Get the response object. $last_response = $eventbrite->getLastResponse(); ?>
如果您需要再次获取解析后的数据,您可以解析最后一个响应。请注意,parseResponse
方法期望一个实现了Guzzle ResponseInterface
的对象,在这种情况下,这始终是Guzzle response
对象。
<?php use jamiehollern\eventbrite\Eventbrite; $eventbrite = new Eventbrite('MY_OAUTH_TOKEN'); // Make a request as normal. $eventbrite->call('GET', 'users/me/orders/'); // Get the response object. $last_response = $eventbrite->getLastResponse(); // Parse the response. $parsed_response = $eventbrite->parseResponse($last_response); ?>
常见问题解答
- 我的调用不起作用,似乎没有调用正确的端点。怎么办?请确保您没有在端点前加上正斜杠
/
,否则会混淆Guzzle。 - 是否有更深入的文档可用?目前还没有,但随着我开发库,我计划编写详细的文档。
- 这个库的路线图是什么?最初,它将作为一个轻量级的抽象,围绕Guzzle,专注于对Eventbrite API的RESTful请求,但最终计划为那些不想手动使用API的用户提供针对每个端点的数据对象和更重的抽象。这将使初学者和高级用户都能在库中找到有价值的东西。