jamiehollern/eventbrite

该包已被废弃且不再维护。未建议替代包。

一个用于与 Eventbrite API 交互的 PHP 库。

1.0.1 2016-06-11 12:09 UTC

This package is not auto-updated.

Last update: 2024-04-13 17:02:15 UTC


README

已弃用!此项目包含错误且不再积极维护。使用风险自负。

Eventbrite API v3 的轻量级 PHP 包装器,使用 Guzzle 6。

Build Status Coverage Status Scrutinizer Code Quality Total Downloads Latest Stable Version License

要求

  • 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 的第一个参数是快捷方法的实际名称。可用方法包括 getpostputpatchdelete

<?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的用户提供针对每个端点的数据对象和更重的抽象。这将使初学者和高级用户都能在库中找到有价值的东西。