leverage-php/aweber

AWeber官方API客户端库的分支。

v1.1.19 2023-04-27 13:44 UTC

This package is auto-updated.

Last update: 2024-09-28 18:42:38 UTC


README

这是原始AWeber-API-PHP-Library的分支,用于修复OAuth响应解析问题,该问题在AWeber端由于响应格式更改而突然出现,尽管多年的稳定运行。

预期不会进行维护。

此客户端库已弃用。

此库将不再提供支持,且不支持OAuth2。

请访问我们的PHP示例作为参考。

AWeber API PHP Library Build Status

用于轻松集成AWeber API的PHP库。

基本用法

参考demo.php以查看如何认证应用程序并查询API的工作示例。

请参阅https://labs.aweber.com/docs/php-library-walkthrough以获取更完整的文档。

错误处理

有时会发生错误,您的应用程序应适当地处理它们。每当发生API错误时,将引发AWeberAPIException,其中包含详细的错误消息和文档链接,解释出了什么问题。

您应该在try/except块中包装对API的任何调用。

常见错误

  • 无效请求(400错误)
  • 您的应用程序未经授权(401错误)
  • 您的应用程序已被限速(403错误)
  • 资源未找到(404错误)
  • API暂时不可用(503错误)

有关完整列表,请参阅https://labs.aweber.com/docs/troubleshooting

以下示例

<?php

$consumerKey = '***';
$consumerSecret = '***';
$accessKey = '***';
$accessSecret = '***';

$aweber = new AWeberAPI($consumerKey, $consumerSecret);
$account = $aweber->getAccount($accessKey, $accessSecret);

try {
    $resource = $account->loadFromUrl('/accounts/idontexist');
} catch (AWeberAPIException $exc) {
    print "<li> $exc->type on $exc->url, refer to $exc->message for more info ...<br>";
}
?>

访问个人信息订阅者数据

要查看或更新订阅者的电子邮件、姓名、备注和ip_address字段,您的应用程序必须明确请求访问订阅者数据。有关如何访问个人信息订阅者信息的更多信息,请参阅我们的文档https://labs.aweber.com/docs/permissions

变更日志

2017-09-02: v1.1.18

  • 修复了'application/json'请求中嵌套对象的格式问题。
  • 修复了在头中发送额外数据的问题。
  • 修复了允许将自定义字段作为表单编码发送的问题。

2017-08-21: v1.1.17

  • 修复了创建时UTF-8问题。

2016-12-16: v1.1.16

  • 使用classmap进行Composer自动加载。

2016-11-09: v1.1.15

  • 为Broadcast Entry端点创建AWeberEntry。

2015-02-17: v1.1.13

  • 删除请求中的双重编码以支持utf-8。

2014-02-05: v1.1.12

  • 添加composer文件。

2013-04-25: v1.1.11

  • 修复了Collection Find Subscriber方法中的bug,其中获取集合的下一页未包含先前的搜索参数。

  • 我们已经将如何存储集合数据更改到AWeberCollection对象中,以减少大型集合所需的内存量。

    为了降低内存使用量,AWeberCollection仅在迭代集合时存储单个页面的条目。

    • foreach和顺序数组索引操作现在需要更少的内存。

    • 通过索引随机访问数组元素时,如果集合数据未在内存中,则会根据需要从API获取集合的页面。

2013-02-07: v1.1.10

  • 更新APIUnreachableException以提供更多诊断数据。

2013-01-03: v1.1.9

  • 更新客户端库以支持API的1.0.17版本。(广播统计)

2012-12-13: v1.1.8

  • 修复了一个bug,该bug导致当集合大小为零时使用集合时引发异常。

2012-12-10: v1.1.7

2012-09-19: v1.1.6

  • 修复了一个bug,该bug导致当资源属性的初始值为null时无法保存资源属性。
    • 使用array_key_exists而不是isset来评估关联数组。需要PHP >= 4.0.7

2012-07-05: v1.1.5

  • 修复了一个bug,当更新订阅者自定义字段值时,会引发utf8_encode notice。

2012-05-08: v1.1.4 一些API开发者报告在使用demo.php脚本时遇到了AWeberOAuthDataMissing异常。此错误消息并不有用,因为此异常的典型原因是无效的消费者密钥或密钥。

客户端库已被重构,以在返回40x/50x http状态码响应时始终引发AWeberAPIException。此异常将清楚地指示错误的根本原因,以便更容易地进行故障排除。

  • 重构makeRequest以在返回40x或50x状态时始终引发AWeberAPIException。
  • 重构makeRequest以指示暂时性的网络或防火墙连接问题。
  • 重构mock适配器的makeRequest以进行测试,使其与实际的makeRequest行为相同。

2012-04-18: v1.1.3

  • 移除了已弃用的split函数的使用。

2011-12-23: v1.1.2

  • 修复了AWeberCollection类中的一个bug,以正确设置集合中找到的条目的URL。

2011-10-10: v1.1.1

  • 如果安装了多个客户端库实例,则引发E_USER_WARNING而不是致命错误。

2011-08-29: v1.1.0

  • 修改客户端库以在任何API错误(HTTP状态 >= 400)上引发AWeberAPIException。
  • 重构测试以获得更好的代码覆盖率
  • 重构移动和创建方法以返回资源或错误时引发AWeberAPIException。
  • 向订阅者条目添加getActivity方法。

运行测试

测试PHP API库需要安装一些实用工具。

要求

Apache Ant用于运行build.xml文件中的构建目标。获取最新版本。

设置/etc/php.ini配置文件。确保include_path包含正确的目录。(在MacOS上为/usr/lib/php)将date.timezone设置为您的本地时区。

执行测试

一旦安装了上述要求,请确保运行composer install,这将确保安装所有测试依赖项。

从基本目录使用命令ant运行测试。

可以指定ant目标运行单个测试:ant phpunitant phpcs