apli/integration-rdstation

Aplí RDStation 客户端库

v1.0.0 2019-11-26 18:22 UTC

This package is auto-updated.

Last update: 2024-08-27 05:05:35 UTC


README

这是一个简单的包,用于使用oauth身份验证将您的应用程序与RD Station Marketing集成。

需求

支持以下版本的PHP。

  • PHP 7.3

基本用法

在控制器构造函数中创建一个provider实例

use Apli\Integration\RdStation\Provider\RdStation;

$this->oauthProvider = new RdStation([
    'clientId'          => Env::get('RDSTATION_CLIENT_ID'),
    'clientSecret'      => Env::get('RDSTATION_CLIENT_SECRET'),
    'redirectUri'       => url('auth/rdstation/callback'),
]);

在授权路由中调用provider的authorize方法

$this->oauthProvider->authorize();

在回调路由中调用getAccessToken

use Apli\OAuth2\Client\Auth\Tokens\AccessTokenInterface;
use Apli\OAuth2\Client\Support\Utils\GrantType;

/** @var AccessTokenInterface $accessToken */
$accessToken = $this->oauthProvider->getAccessToken(GrantType::AUTHORIZATION_CODE, [
    'code' => $request->get('code')
]);

资源所有者

要请求RDStation数据(如联系人或更新漏斗/事件),您需要一个ResourceOwner实例。此对象是rdstation授权账户的表示。

use Apli\Integration\RdStation\Provider\RdStationAccount;

$rdstationAccount = $this->oauthProvider->getResourceOwner($accessToken);

联系人

$contact = $rdstationAccount->contacts()->getByIdentifier('email@domain.com');

or you can use uuid

$contact = $rdstationAccount->contacts()->getByIdentifier('11111111-1111-1111-1111-111111111111');

更新联系人

$contact->setJobTitle('Developer');
$contact->getAddress()->setState('SP');
$contact->getPhone()->setMobilePhone('9876543210');
$contact->getSocialNetwork()->setTwitter('teste');
$rdstationAccount->contacts()->patch($contact);

漏斗

$funnel = $rdstationAccount->funnels()->getByIdentifier('email@domain.com');

// or you can use uuid

$funnel = $rdstationAccount->funnels()->getByIdentifier('11111111-1111-1111-1111-111111111111');

更新漏斗

use Apli\Integration\RdStation\Entities\Funnel;

$funnel->setLifecycleStage(Funnel::STAGE_LEAD);
$rdstationAccount->funnels()->put('email@domain.com', $funnel);

// or you can use uuid

$rdstationAccount->funnels()->put('11111111-1111-1111-1111-111111111111', $funnel);

事件

use Apli\Integration\RdStation\Entities\Event;

$event = new Event(
    Event::FAMILY_CDP,
    Event::TYPE_CONVERSION, 
    [
        'conversion_identifier' => 'conversionName',
        'email' => 'email@domain.com'
    ]
);
$rdstationAccount->events()->post($event);

持久化访问令牌

您可以将访问令牌数据保存到数据库中以便重用,为此我们提供了一个toArray()方法。

$accessTokenData = $accessToken->toArray()

// response:
// [
//     "access_token" => "xxxx",
//     "refresh_token" => "xxxxx",
//     "expires" => 1574799849,
//     "grant_type" => "Authorization",
//     "provider_name" => "rdstation"
// ]

恢复访问令牌对象

要恢复访问令牌对象

use Apli\OAuth2\Client\Auth\Tokens\AccessToken;

$accessToken = new AccessToken($accessTokenData);