配置集成

Note

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

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

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

集成插件提供接口来显示和存储配置选项。您可以使用 \Mautic\PluginBundle\Entity\Integration 对象来实现这一点。

注册用于配置的集成

要告知 IntegrationsBundle,此集成具有配置选项,请在插件的 app/config.php 文件中,使用 mautic.config_integration 标记集成或支持类。

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

ConfigSupport 类必须实现 \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormInterface.

interface \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormInterface
public function getDisplayName(): string;
Returns:

返回集成的显示名称。

Return type:

string

public function getConfigFormName(): ?string;
Returns:

表单类型的名称/类,用于覆盖默认值,或者直接返回 NULL 以使用默认值。

Return type:

?string

public function getConfigFormContentTemplate(): ?string;
Returns:

从控制器使用的模板。 返回 null 使用默认值。

Return type:

?string

找到以下代码片段,

<?php
namespace MauticPlugin\HelloBundle\Integration\Support;

use MauticPlugin\HelloWorldBundle\Form\Type\ConfigAuthType;
use Mautic\IntegrationsBundle\Integration\DefaultConfigFormTrait;
use Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormInterface;
use Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormAuthInterface;

class ConfigSupport implements ConfigFormInterface, ConfigFormAuthInterface
{
    use DefaultConfigFormTrait;
public function getDisplayName(): string
{

return ‘Hello World’;

}

/**

*/

public function getAuthConfigFormName(): string {

return ConfigAuthType::class;

}

}

接口

有多个接口可用于向提供的配置选项卡添加表单字段选项。

启用/身份验证选项卡

这些接口提供用于与第三方服务进行身份验证的配置选项。 更多关于如何使用 IntegrationsBundle 的 :ref:`身份验证提供程序<components/integrations_authentication:Authentication Providers>`的信息,请阅读此处。

ConfigFormAuthInterface

MauticIntegrationsBundleIntegrationInterfacesConfigFormAuthInterface 接口提供了定义要存储为 API 密钥的字段的 Symfony 表单类型类。

interface \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormAuthInterface
public function getAuthConfigFormName(): string;
Returns:

用于身份验证选项卡的表单类型服务的名称,应包含 API 正常运行所需的所有字段。

Return type:

string

以下代码片段可帮助您获取 API 密钥:

<?php
$apiKeys  = $integrationHelper->get(HelloWorldIntegration::NAME)->getIntegrationConfiguration()->getApiKeys();
$username = $apiKeys['username'];

ConfigFormCallbackInterface

如果集成使用需要回调 URL 或类似内容的身份验证提供程序,则此接口 MauticIntegrationsBundleIntegrationInterfacesConfigFormCallbackInterface 提供了返回要在 UI 中显示的翻译字符串的方法。 例如,OAuth2 需要一个重定向 URI。 如果管理员需要在第三方服务中配置 OAuth 凭据,并需要知道在 Mautic 中使用的 URL(作为重定向 URI 或回调 URL),请使用 getCallbackHelpMessageTranslationKey() 方法。

interface \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormCallbackInterface
public function getCallbackHelpMessageTranslationKey(): string;
Returns:

在表单中使用的消息 ID,用于描述回调 URL 的用途。

Return type:

string

特性接口

ConfigFormFeatureSettingsInterface

The interface \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormFeatureSettingsInterface provides the Symfony Form type class. It determines what fields to display on the Features tab. These values aren’t encrypted.

interface \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormFeatureSettingsInterface
public function getFeatureSettingsConfigFormName(): string;
Returns:

The name of the Form type service for the feature settings.

Return type:

string

<?php
$featureSettings  = $integrationHelper->get(HelloWorldIntegration::NAME)->getIntegrationConfiguration()->getFeatureSettings();
$doSomething      = $featureSettings['do_Something'];

ConfigFormFeaturesInterface

Currently the IntegrationsBundle provides default features. To use these features, implement this interface, \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormFeaturesInterface. getSupportedFeatures returns an array of supported features. For example, if the Integration syncs with Mautic Contacts, getSupportedFeatures() could return [ConfigFormFeaturesInterface::FEATURE_SYNC];.

interface \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormFeaturesInterface
public const FEATURE_SYNC = 'sync';
public const FEATURE_PUSH_ACTIVITY = 'push_activity';
public function getSupportedFeatures(): array;
Returns:

An array of value => label pairs for the features this Integration supports.

Return type:

array[]

Contact/Company syncing interfaces

The IntegrationsBundle provides a sync framework for third party services to sync with Mautic’s Contacts and Companies. The \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormSyncInterface determines the configuration options for this sync feature. Refer to the method DocBlocks in the interface for more details.

Read more about how to leverage the sync framework.

Config Form notes interface

The interface, \Mautic\IntegrationsBundle\Integration\Interfaces\ConfigFormNotesInterface, provides a way to display notes, either info or warning, on the Plugin configuration Form.

Read more about how-tos here