skyfrog / activecampaign-api-php
一个替代的、更符合PSR规范的AC API包装器
Requires
- php: >=5.3.0
- lib-curl: *
Requires (Dev)
- phpunit/phpunit: 4.4.*
This package is not auto-updated.
Last update: 2024-09-24 20:35:16 UTC
README
这是一个ActiveCampaign API官方PHP包装器的分支。与原版相比,这个分支是composer感知的,使用命名空间,使得在像Zend2或Symfony2这样的MVC框架中创建的项目使用API包装器变得容易。
安装
如上所述,这个分支是composer感知的,尽管实际上没有在packagist上注册(在我的待办事项列表中:-P)。目前,将以下内容添加到您的composer.json
文件中将(必须)这样做
"repositories": [ { "type": "vcs", "url": "https://github.com/EVODelavega/activecampaign-api-php.git" } ], "require": { "EVODelavega/activecampaign-api-php": "dev-master" }
如果您想这样做,有一个postUpdate/postInstall脚本是可用的,它允许您重新编写此存储库中的config.php文件,以定义ACTIVECAMPAIGN_URL
和ACTIVECAMPAIGN_API_KEY
常量。尽管如此,如下面的Symfony2示例所示,这是可选的。这个分支在任何地方都没有使用这些常量。如果您想使用这个脚本,编辑您的composer文件如下
"scripts": { "post-install-cmd": [ "AC\Connector::postUpdate" ], "post-update-cmd": [ "AC\Connector::postUpdate" ] }
这两个都可以,尽管可能更倾向于post-update-cmd
。
默认情况下,配置将回退到“托管”模式(与原始存储库的“master”分支的行为类似)。不是创建一个单独的现场分支,而是可以将AC\Arguments\Config
对象设置为“现场”模式,使用类常量和/或构造函数参数。当然,也可以即时设置模式。
示例(Symfony2)
要像官方Symfony2食谱一样使用Acme bunle,以下是如何使用此存储库的示例
- 在您的bundle目录(src/AcmeBunle)中创建/编辑services.yml文件(AcmeBundle/Resources/config/services.yml)
parameters: ac: url: http://your.activecampaign.url apiKey: yourACkeyHash apiUser: userName apiPass: OptionalPass(hash) output: json (default output, can be changed on the fly) mode: onsite (or hosted, can be changed on-the-fly, too)
- 然后设置访问API的服务,使其传递这些参数
services: your_api_service: class: "%theClass%" calls: - [setActiveCampaignConfig, [%ac%]]
- 完成这些后,将相应的属性和方法添加到相关的服务类中
<?php namespace AcmeBundle\Service; use AC\Arguments\Config, AC\ActiveCampaign; /** * Your service class doc-block */ class YourService { /** * @var \AC\ActiveCampaign */ protected $api = null; /** * @var \AC\Arguments\Config */ protected $config = null; /** * Is called by service locator * @param array $config * @return \AcmeBundle\Service\YourService */ public function setActiveCampaignConfig(array $config) { $this->config = new Config($config); return $this; } public function getActiveCampaignConfig() { return $this->config; } /** * Lazy-load the api interface * @return \AC\ActiveCampaign */ public function getActiveCampaignAPI() { if ($this->api === null) { $this->api = new ActiveCampaign( $this->getActiveCampaignConfig() ); } return $this->api; } }
- 之后,您就可以像examples.php文件中使用它一样使用API了
/** * Example method, perhaps to add to the ficticious class listed above * @param array $contact * @return \stdClass **/ public function syncContact(array $contact) { //returns existing ActiveCampaign instance, or creates one if required $api = $this->getActiveCampaignApi(); return $api->api('contact/sync', $contact); }
当然,您可以根据自己的需要扩展它,例如,创建一个Contact
类,并从中提取一个API可以处理的正确格式的数组。无论如何,这正是创建这个分支的原因,这也是它最初的使用方式。
背景
这个API分支远远没有完成。我必须在项目中使用API包装器,但因为它不是composer感知的,而且原始存储库使composer自动加载成为一个咳嗽挑战咳嗽,所以我使用我的PyPHPScanner快速重构了一点,添加了composer.json文件,并实现了一些令人难以置信的魔术方法。这些魔术方法将在不久的将来被淘汰,将扩展ActiveCampaign::api
方法对API调用进行缓存的 ability,之后,我将看看我还能做些什么。现在,您可以自由使用这个分支,不要犹豫,自己分支!当然,共享并共享:pull-requests受到高度赞赏。
原始README
这是ActiveCampaign API的官方PHP包装器。这些文件的目的是为ActiveCampaign API提供简单接口。您不需要使用这些文件(为了使用ActiveCampaign API),但出于以下原因推荐使用
- 设置和使用起来容易得多(与从头开始自己编写代码相比)。
- ActiveCampaign完全支持该功能,这意味着我们将立即修复任何问题,并随着软件的更新和演变持续改进包装器。
- 这是在使用ActiveCampaign支持时演示API请求的常用方法。
无论是我们托管平台上的客户还是本地版用户,都可以使用这些文件。本地版用户应该克隆源代码并切换到"onsite"分支,因为该分支针对本地版。托管平台上许多功能在本地版中不可用。
安装
您可以通过下载或克隆源代码来安装activecampaign-api-php
。
点击此处下载源代码(.zip),其中包含所有依赖项。
require_once("includes/ActiveCampaign.class.php");
在includes/config.php
文件中填写您的URL和API密钥,然后就可以使用了!
示例用法
includes/config.php
define("ACTIVECAMPAIGN_URL", "https://ACCOUNT.api-us1.com"); define("ACTIVECAMPAIGN_API_KEY", "njasdf89hy...23ad7");
examples.php
require_once("includes/ActiveCampaign.class.php"); $ac = new ActiveCampaign(ACTIVECAMPAIGN_URL, ACTIVECAMPAIGN_API_KEY); $account = $ac->api("account/view");
或者将所有内容都包含在同一PHP文件中
define("ACTIVECAMPAIGN_URL", "https://ACCOUNT.api-us1.com"); define("ACTIVECAMPAIGN_API_KEY", "njasdf89hy...23ad7"); require_once("includes/ActiveCampaign.class.php"); $ac = new ActiveCampaign(ACTIVECAMPAIGN_URL, ACTIVECAMPAIGN_API_KEY); $account = $ac->api("account/view");
请参阅我们的示例文件以获取更深入的示例。
完整文档
报告问题
如果您有任何疑问或问题,我们很乐意帮助您。请使用Github问题跟踪器报告问题或通过help@activecampaign.com发送电子邮件。