agenciafmd/laravel-rdstation

dev-master 2024-09-03 12:18 UTC

This package is auto-updated.

Last update: 2024-09-03 12:18:05 UTC


README

Downloads Licença

  • 将转换发送到RD Station

安装

composer require agenciafmd/laravel-rdstation:dev-master

配置V1

为了进行集成,我们需要公共token

为此,请进入 个人资料 > 集成

Perfil > Integrações

现在,请进入 集成数据 > 公共token

Dados da Integração > Token Público

将这个密钥放在我们的 .env 中

RDSTATION_PUBLIC_KEY=VYfa6Oo1oaCIeQ68Ase9dSOBPdgRvWtJ

使用

将字段作为数组格式发送给SendConversionsToRdstation。

email字段是必填项 =)

为了通过jobs执行过程,需要按照以下方式传递cookie的值。

use Agenciafmd\Rdstation\Jobs\SendConversionsToRdstation;

$data['email'] = 'irineu@fmd.ag';
$data['nome'] = 'Irineu Junior';

SendConversionsToRdstation::dispatch($data + [
        'identificador' => 'seja-um-parceiro',
        'utm_campaign' => Cookie::get('utm_campaign', ''),
        'utm_content' => Cookie::get('utm_content', ''),
        'utm_medium' => Cookie::get('utm_medium', ''),
        'utm_source' => Cookie::get('utm_source', ''),
        'utm_term' => Cookie::get('utm_term', ''),
        'gclid_' => Cookie::get('gclid', ''),
        'cid' => Cookie::get('cid', ''),
    ])
    ->delay(5)
    ->onQueue('low');

配置V2

在开始之前,我们需要为RD Station的负责人申请一个开发者账户。

账户创建后,我们将创建一个应用程序

请访问 https://developers.rdstation.com/

登录并选择客户(如果有多个客户,则选择一个)并点击 访问RD Station Marketing

docs/acessar-rd-station-marketing.png

在菜单产品中,点击 RD Station App Store

docs/acessar-rd-station-app-store.png

现在,请进入 我的应用程序 > 创建一个应用程序

选择一个易于理解的名称并点击 创建App

docs/criar-app.png

现在只需按照步骤进行。

请注意重定向URL,这对于认证非常重要。

正是通过它,我们将能够恢复code

docs/criar-app-redirect.png

创建后,复制Client IDClient Secret

docs/client-secret-callback.png

为了获取code,我们将用我们从应用程序中恢复的数据替换client_idredirect_uri

https://api.rd.services/auth/dialog?client_id=client_id&redirect_uri=redirect_uri&state=

如果一切顺利,我们将被重定向到我们在应用程序中插入的回调URL。

现在,请复制URL中的code

docs/code.png

现在我们将恢复access_tokenrefresh_token

为此,我们将对端点/auth/token?token_by=code执行POST请求

在下面的示例中,我们将用我们从应用程序中恢复的值替换client_idclient_secretcode

curl --request POST \
     --url 'https://api.rd.services/auth/token?token_by=code' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "client_id": "client_id",
  "client_secret": "client_secret",
  "code": "code"
}
'

返回的将是类似的内容(请注意,我们消费了一部分数据)。

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
    "expires_in": 86400,
    "refresh_token": "1-GZ7PR4V5tsS..."
}

现在我们已经获得了所有必要的配置数据。

RDSTATION_CLIENT_ID=71d41aa9-5967-4820-aad1-9da1e753d2d1
RDSTATION_CLIENT_SECRET=a140c4683eca43d092fc2837c4efdf46
RDSTATION_REFRESH_TOKEN=1-WX7PR4V5cvSaX9K-9qvcCQm8fPOkhWSM5i6fuTkYY

使用

将字段作为数组格式发送给SendConversionsToRdstationV2。

email字段是必填项 =)

为了通过jobs执行过程,需要按照以下方式传递cookie的值。

请注意,cf_assunto_de_interessecf_empreendimento字段是我们在RD Station中创建的自定义字段,可能会根据每个客户而有所不同。

use Agenciafmd\Rdstation\Jobs\SendConversionsToRdstationV2;

$data['email'] = 'irineu@fmd.ag';
$data['nome'] = 'Irineu Junior';

SendConversionsToRdstationV2::dispatch($data + [
        'conversion_identifier' => 'seja-um-parceiro',
        'mobile_phone' => $data['phone'],
        'cf_assunto_de_interesse' => 'assunto',
        'cf_empreendimento' => 'nome-do-empreendimento',
        'cf_utm_campaign' => Cookie::get('utm_campaign', ''),
        'cf_utm_content' => Cookie::get('utm_content', ''),
        'cf_utm_medium' => Cookie::get('utm_medium', ''),
        'cf_utm_source' => Cookie::get('utm_source', ''),
        'gclid_' => Cookie::get('gclid', ''),
        'cid' => Cookie::get('cid', ''),
        // seria legal matar esses campos
        'traffic_source' => Cookie::get('utm_source', ''),
        'traffic_medium' => Cookie::get('utm_medium', ''),
        'traffic_campaign' => Cookie::get('utm_campaign', ''),
        'traffic_value' => Cookie::get('utm_content', ''),
        'client_tracking_id' => Cookie::get('cid', '') . '|' . Cookie::get('gclid', ''),
        // fim do seria legal matar esses campos
    ])
    ->delay(5)
    ->onQueue('low');

队列

请注意,在我们的示例中,我们向低优先级队列发送了工作。

请确保您的queue:work运行正常,类似于以下内容。

php artisan queue:work --tries=3 --delay=5 --timeout=60 --queue=high,default,low