Getting started with Integrations

Note

此页面的内容需要进行重大更新。旧页面包含过时且可能不准确的信息。您仍然可以在 Mautic Developer Documentation archived repository 中访问它。

如果您有兴趣帮助开发此页面和其他新内容的,请考虑加入文档编写工作。

请阅读 Contributing GuidelinesContributing to Mautic’s documentation 以开始您的贡献。

每个集成都提供其在 Mautic 中注册的唯一名称、一个图标和一个显示名称。当一个集成注册时,集成辅助类通过 \Mautic\PluginBundle\Entity\Integration 对象管理 \Mautic\IntegrationsBundle\Integration\Interfaces\IntegrationInterface。它处理集成的 API 密钥的解密和加密,因此实现代码无需执行此操作。


注册集成

所有集成,无论使用配置、身份验证还是同步接口,都必须有一个类来将其自身注册到 Mautic 中。该集成应在 /s/plugins UI 路由中列出。

在插件的 Config/config.php 文件中,使用 mautic.basic_integration 标签注册该集成。

<?php
return [
    // ...
    'services' => [
        // ...
        'integrations' => [
            'helloworld.integration' => [
                'class' => \MauticPlugin\HelloWorldBundle\Integration\HelloWorldIntegration::class,
                'tags'  => [
                    'mautic.basic_integration',
                ],
            ],
            // ...
        ],
        // ...
    ],
    // ...
];

HelloWorldIntegration 需要实现 MauticIntegrationsBundleIntegrationInterfacesIntegrationInterfaceMauticIntegrationsBundleIntegrationInterfacesBasicInterface 接口。在大多数情况下,可以直接扩展 MauticIntegrationsBundleIntegrationBasicIntegration 抽象类。

class \Mautic\IntegrationsBundle\Integration\BasicIntegration
public function getName(): string;
Returns:

返回集成的名称。

Return type:

string

public function getDisplayName(): string;
Returns:

返回集成的显示名称。

Return type:

string

public function getIcon(): string;
Returns:

获取集成的图标路径。

Return type:

string

<?php
namespace MauticPlugin\HelloWorldBundle\Integration;

use Mautic\IntegrationsBundle\Integration\BasicIntegration;
use Mautic\IntegrationsBundle\Integration\Interfaces\BasicInterface;
use Mautic\IntegrationsBundle\Integration\Interfaces\IntegrationInterface;
class HelloWorldIntegration extends BasicIntegration
{

const NAME = ‘HelloWorld’;

public function getName(): string {

return self::NAME;

}

public function getDisplayName(): string {

return ‘Hello World’;

}

public function getIcon(): string {

return ‘plugins/HelloWorldBundle/Assets/img/helloworld.png’;

}

}

Note

HelloWorldIntegration::NAME 必须只包含字母,如 a-z 或 A-Z。

集成认证

如果集成需要与第三方服务进行身份验证:

  1. 注册集成,将其作为需要身份验证选项的集成。

  2. 为所需的凭据创建自定义 Symfony 表单类型,并将其作为 配置接口 的一部分返回。

  3. 创建一个自定义服务,用于构建和配置 Guzzle 客户端,以进行身份验证并与第三方服务通信。 使用现有的支持的工厂或创建新的工厂 <plugin_integrations/integrations_authentication:Authentication Providers>。

集成配置

如果集成具有特定于它的额外配置设置:

  1. 注册集成,将其作为需要配置选项的集成。

  2. 为这些功能创建自定义 Symfony 表单类型,并将其作为 Config Form 特性设置接口 的一部分返回。

集成同步引擎

如果集成与 Mautic 的联系人和/或公司进行同步:

  1. 了解 同步引擎.

集成构建器

如果集成包含构建器、电子邮件或着陆页:

  1. 将集成注册为构建器,将其作为提供自定义构建器的集成。

  2. 配置集成支持哪些功能性构建器(Mautic 当前支持“电子邮件”和“着陆页”构建器)。

Config Form 备注接口

接口 \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormNotesInterface 提供了一种向插件配置表单添加注释(无论是信息还是警告)的方法。

了解更多关于它的内容,请访问 集成配置表单备注.