2017 © Pedro Peláez
 

library marketo-client

A PHP client for the Marketo REST API.

image

eventfarm/marketo-client

A PHP client for the Marketo REST API.

  • Thursday, November 17, 2016
  • by eventfarm
  • Repository
  • 2 Watchers
  • 2 Stars
  • 1,041 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

marketo-client

Travis Downloads Packagist Code Climate Test Coverage, (*1)

This package provides an interface for interacting with the Marketo REST API., (*2)

Installation

$ composer require eventfarm/marketo-client

Or add the following lines to your composer.json file:, (*3)

{
    "require": {
        "eventfarm/marketo-client": "dev-master"
    }
}
$ composer install

Project Defaults

In order to get you up and running as easily as possible, we provide default implementations of a REST client and Marketo provider to use in combination with this package. * We've chosen to use Guzzle for sending HTTP requests * We've chosen to use The PHP League's Oauth Client and my Marketo provider for Marketo authentication and token refresh., (*4)

Guzzle REST Client

Our REST client implements the PSR-7 HTTP message interface., (*5)

You can either use the provided GuzzleRestClient or have your own that implements our RestClientInterface., (*6)

KristenlkMarketoProvider

Our default Marketo provider is my Marketo Provider library., (*7)

You can either use the provided KristenlkMarketoProvider or use your own that implements our MarketoProviderInterface., (*8)

Example Client Implementation

<?php
namespace App;

use EventFarm\Marketo\Oauth\AccessToken;
use EventFarm\Marketo\MarketoClient;
use EventFarm\Marketo\TokenRefreshInterface;

class DemoMarketoClient implements TokenRefreshInterface
{
    public function getMarketoClient():MarketoClient
    {
        if (empty($this->marketo)) {
            $this->marketo = MarketoClient::withDefaults(
                'ACCESS_TOKEN',
                'TOKEN_EXPIRES_IN', // when the current access token expires (in seconds)
                'TOKEN_LAST_REFRESH', // when the current access token was last refreshed (as a UNIX timestamp)
                'CLIENT_ID',
                'CLIENT_SECRET',
                'BASE_URL',
                $this // TokenRefreshInterface
            );
        }
        return $this->marketo;
    }

    public function tokenRefreshCallback(AccessToken $token)
    {
        // CALLBACK FUNCTION TO STORE THE REFRESHED $token TO PERSISTENCE LAYER
    }
}

Usage

Campaigns

Get Campaigns

Docs Returns a list of campaign records. Refer to the docs for the full list of options., (*9)

public function getCampaigns(array $options = array()), (*10)

<?php
$demoMarketoClient = new DemoMarketoClient()->getMarketoClient();

$options = [
  "programName" => "My Marketo Program",
  "batchSize" => 10
];

$campaigns = $demoMarketoClient->campaigns()->getCampaigns($options);
// getCampaigns() can also be called without options.
// $campaigns = { ... }

Trigger Campaign

Docs Passes a set of leads to a trigger campaign to run through the campaign's flow. Refer to the docs for the full list of options., (*11)

  • A campaignId and an array of options that includes an input key (mapped to an array that contains arrays of lead data) must be passed to triggerCampaign().

public function triggerCampaign(int $campaignId, array $options), (*12)

<?php
$demoMarketoClient = new DemoMarketoClient()->getMarketoClient();

$campaignId = 1029;
$options = [
    "input" => [
        "leads" => [
            [
                "id" => 1234
            ]
        ]
    ]//, additional options
];

$campaign = $demoMarketoClient->campaigns()->triggerCampaign($campaignId, $options);
// $campaign = { ... }

Lead Fields

Get Lead Fields

Docs Returns metadata about lead objects in the target instance, including a list of all fields available for interaction via the APIs., (*13)

public function getLeadFields(array $options = array()), (*14)

<?php
$demoMarketoClient = new DemoMarketoClient()->getMarketoClient();
$leadFields = $demoMarketoClient->leadFields()->getLeadFields();
// $leadFields = { ... }

Leads

Create or Update Leads

Docs Syncs a list of leads to the target instance. Refer to the docs for the full list of options., (*15)

  • An array of options that includes an input key (mapped to an array that contains arrays of lead data) must be passed to createOrUpdateLeads().

public function createOrUpdateLeads(array $options), (*16)

By default, Marketo sets the type of sync operation (action) to createOrUpdate and the lookupField to email. If using those defaults: - Email is not required; if an email is not included in a lead array, Marketo will create a lead without an email. - When an email is included, Marketo will search for existing leads with that email. If one is found, Marketo will update the found lead with the data sent; if one is not found, Marketo will create a new lead with the data sent., (*17)

<?php
$demoMarketoClient = new DemoMarketoClient()->getMarketoClient();

$options = [
    "input" => [
        [
            "email" => "email1@example.com",
            "firstName" => "Example1First",
            "lastName" => "Example1Last"
        ],
        [
            "email" => "email2@example.com",
            "firstName" => "Example2First",
            "lastName" => "Example2Last"
        ]
    ]//, additional options
];

$leads = $demoMarketoClient->leads()->createOrUpdateLeads($options);
// $leads = { ... }

Update Leads' Program Status

Docs Changes the program status of a list of leads in a target program. Refer to the docs for the full list of options., (*18)

  • A programId and an array of options that includes an input key (mapped to an array that contains arrays of lead data) and a status key (mapped to a program status) must be passed to updateLeadsProgramStatus().

public function updateLeadsProgramStatus(int $programId, array $options), (*19)

<?php
$demoMarketoClient = new DemoMarketoClient()->getMarketoClient();

$programId = 1234;
$options = [
    "input" => [
        [
            "id" => 1111
        ]
    ],
    "status" => "Registered"
];

$leads = $demoMarketoClient->leads()->updateLeadsProgramStatus($programId, $options);
// $leads = { ... }

Get Leads by Program

Docs Retrieves a list of leads that are members of the designated program. Refer to the docs for the full list of options., (*20)

  • A programId must be passed to getLeadsByProgram().

public function getLeadsByProgram(int $programId, array $options = array()), (*21)

<?php
$demoMarketoClient = new DemoMarketoClient()->getMarketoClient();

$programId = 1234;
$options = [
    "fields" => 'firstName,lastName,email,middleName,mktoIsPartner';
];

$leads = $demoMarketoClient->leads()->getLeadsByProgram($programId, $options);
// getLeadsByProgram() can also be called without options.
// $leads = { ... }

Lead Partitions

Get Lead Partitions

Docs Returns a list of available partitions in the target instance. Refer to the docs for the full list of options., (*22)

public function getPartitions(array $options = array()), (*23)

<?php
$demoMarketoClient = new DemoMarketoClient()->getMarketoClient();

$partitions = $demoMarketoClient->partitions()->getPartitions();
// $partitions = { ... }

Programs

Get Programs

Docs Retrieves the list of accessible programs from the target instance. Refer to the docs for the full list of options., (*24)

public function getPrograms(array $options = array()), (*25)

<?php
$demoMarketoClient = new DemoMarketoClient()->getMarketoClient();

$programs = $demoMarketoClient->programs()->getPrograms();
// $programs = { ... }

Statuses

Get Statuses

Docs Retrieves channels based on the provided name. Refer to the docs for the full list of options., (*26)

  • A programChannel must be passed to getStatuses().

public function getStatuses(string $programChannel, array $options = array()), (*27)

<?php
$demoMarketoClient = new DemoMarketoClient()->getMarketoClient();

$programChannel = "Live Event";

$programs = $demoMarketoClient->statuses()->getStatuses($programChannel);
// $programs = { ... }

The Versions

17/11 2016

dev-master

9999999-dev

A PHP client for the Marketo REST API.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Kristen Kehlenbeck

marketo marketo api

03/11 2016

1.1

1.1.0.0

A PHP client for the Marketo REST API.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Kristen Kehlenbeck

marketo marketo api

27/10 2016

1.0

1.0.0.0

A PHP client for the Marketo REST API.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Kristen Kehlenbeck

marketo marketo api