combindma/laravel-mautic

Laravel应用的Mautic API

1.6.0 2024-03-16 00:25 UTC

This package is auto-updated.

Last update: 2024-09-16 01:31:23 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

免费开源营销自动化API免费开源营销自动化API

安装

您可以通过composer安装此包

composer require combindma/laravel-mautic

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="laravel-mautic-config"

这是已发布配置文件的内容

return [
    /*
    |--------------------------------------------------------------------------
    | Auth Type
    |--------------------------------------------------------------------------
    | Version of the auth can be OAuth2 or BasicAuth. OAuth2 is the default value.
    |
    */
    'version' => env('MAUTIC_VERSION', 'OAuth2'), //or BasicAuth

    /*
     * Base URL of the Mautic instance
     */
    'baseUrl' => env('MAUTIC_BASE_URL'),

    /*
     * Client/Consumer key from Mautic
     */
    'clientKey' => env('MAUTIC_PUBLIC_KEY'),

    /*
     * Client/Consumer secret key from Mautic
     */
    'clientSecret' => env('MAUTIC_SECRET_KEY'),

    /*
     * Redirect URI/Callback URI for this script
     */
    'callback' => env('MAUTIC_CALLBACK'),

    /*
    |--------------------------------------------------------------------------
    | Mautic App Credentials
    |--------------------------------------------------------------------------
    |
    | This is used in case of BasicAuth
    |
    */
    'username' => env('MAUTIC_USERNAME'),

    'password' => env('MAUTIC_PASSWORD'),

    /*
    * Enable or disable Mautic. Useful for local development when running tests.
    */
    'apiEnabled' => env('MAUTIC_ENABLED', false),

    /*
    * Filename to use when storing mautic access token. Must be a json File
    */
    'fileName' => 'mautic.json',
];

可选地,您可以使用以下命令发布视图

php artisan vendor:publish --tag="laravel-mautic-views"

授权

此库仅支持OAuth2BasicAuth认证。对于OAuth2,您需要创建一个OAuth2客户端才能使用API。

OAuth2 Mautic配置

必须启用Mautic中的API。

在Mautic中,转到配置页面(位于设置菜单中),在API设置中启用Mautic的API。

保存配置后,转到API凭据页面(位于设置菜单中)并创建一个新的客户端。

输入回调/重定向URI(应为https://your-domain.com/integration/mautic/callback)。点击应用,然后将客户端ID和客户端密钥复制到.env文件中。

这是.env文件的示例

MAUTIC_VERSION="OAuth2"
MAUTIC_BASE_URL=https://mautic-domain.com
MAUTIC_PUBLIC_KEY=XXXXXXXXXXXXXXXX
MAUTIC_SECRET_KEY=XXXXXXXXXX
MAUTIC_CALLBACK=https://your-domain.com/integration/mautic/callback
MAUTIC_ENABLED=true

BasicAuth Mautic配置

您需要在.env文件中添加您的usernamepassword以使用BasicAuth。

MAUTIC_VERSION="BasicAuth"
MAUTIC_BASE_URL=https://mautic-domain.com
MAUTIC_USERNAME=email@email.com
MAUTIC_PASSWORD=password
MAUTIC_ENABLED=true

注册应用程序(仅OAuth2认证)

为了将应用程序注册到mautic,请一次ping此url以注册您的应用程序。

https://your-domain.com/integration/mautic

使用方法

管理联系人

当与联系人API一起工作时,IpAddress和lastActive参数默认添加,因此您无需包含它们。

use Combindma\Mautic\Facades\Mautic;

//Create a new contact
Mautic::contacts()->create('email@gmail.com');

//with $parameters
$params = array(
    'firstname' => 'bullet',
    'lastname'  => 'proof',
);
Mautic::contacts()->create('email@gmail.com', $params);

//Edit a given contact
Mautic::contacts()->edit($contactId, $params);

//Delete a contact
Mautic::contacts()->delete(567);//567 is the contact ID, change it to your needs

使用段管理联系人

use Combindma\Mautic\Facades\Mautic;

//Add contact to a segment
Mautic::segments()->addContact($segmentId, $contactId);

//Create a contact and add it to a segment
$response = Mautic::contacts()->create(strtolower($request->input('email')));
if ($response && !$response->failed())
{
    $contactId = $response->object()->contact->id;
    Mautic::segments()->addContact(4, $contactId);//4 is the segment ID, change it to your needs
}

//Remove a contact from a given segment
Mautic::segments()->removeContact($segmentId, $contactId);

使用UTM标签管理联系人

use Combindma\Mautic\Facades\Mautic;

//Add UTM tags to a given contact
$data = array(
    'utm_campaign' => 'apicampaign',
    'utm_source'   => 'fb',
    'utm_medium'   => 'social',
    'utm_content'  => 'fbad',
    'utm_term'     => 'mautic api',
    'useragent'    => 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0',
    'url'          => '/product/fbad01/',
    'referer'      => 'https://google.com/q=mautic+api',
    'query'        => ['cid'=>'abc','cond'=>'new'], // or as string with "cid=abc&cond=new"
    'remotehost'   => 'example.com',
    'lastActive'   => '2017-01-17T00:30:08+00:00'
 );
 
Mautic::utmTags()->addUtmTag($contactId, $data);

//Remove a given UTM Tag from contact
Mautic::utmTags()->removeUtmTag($utmId, $contactId);

管理联系人点

use Combindma\Mautic\Facades\Mautic;

//Add contact points
$data = array(
    'eventName' => 'Score via api',
    'actionName' => 'Adding',
 );
 
Mautic::points()->addPoints($contactId, 10, $data);//$data is optional

//Subtract contact points
$data = array(
    'eventname' => 'Score via api',
    'actionname' => 'Subtracting',
 );
Mautic::points()->subtractPoints($contactId, 10, $data);//$data is optional

与API通信可能成为重复的过程。这就是为什么我们使此包可宏化的原因。

use Combindma\Mautic\Facades\Mautic;

//include this in your macrobale file
Mautic::macro('subscribe', function(string $email) {
    $response = Mautic::contacts()->create(strtolower($request->input('email')));
    if ($response && !$response->failed())
    {
        $contactId = $response->object()->contact->id;
        Mautic::segments()->addContact(4, $contactId);//4 is the segment ID, change it to your needs
    }
});

//In your controller, you only need to call your method
Mautic::sbscribe('email@email.com');

有关所有可定制的参数,请参阅文档

测试

composer test

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞,请参阅我们的安全策略

鸣谢

许可

MIT许可证(MIT)。有关更多信息,请参阅许可文件