skyfrog/activecampaign-api-php

一个替代的、更符合PSR规范的AC API包装器

v1.0.1 2022-12-05 13:47 UTC

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_URLACTIVECAMPAIGN_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),但出于以下原因推荐使用

  1. 设置和使用起来容易得多(与从头开始自己编写代码相比)。
  2. ActiveCampaign完全支持该功能,这意味着我们将立即修复任何问题,并随着软件的更新和演变持续改进包装器。
  3. 这是在使用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");

请参阅我们的示例文件以获取更深入的示例。

完整文档

点击此处查看我们的完整API文档。

报告问题

如果您有任何疑问或问题,我们很乐意帮助您。请使用Github问题跟踪器报告问题或通过help@activecampaign.com发送电子邮件。