Skip to content

Unable to use Mautic API after manual install #177

Description

@gbard

Hello,

I struggled to use Mautic's API since I couldn't use Composer to install the API (hosted on a shared server with limited ressources). I followed the instructions to install it manually but I had errrors about missing librairies and functions. It was like if the /vendor/autoload.php was not loading all required librairies.

I was finally able to get it to work and I thought it could help some people having the same issue if I posted my source code. I'm using BasicAuth for permanent authentification.

<?php

	//LOADING REQUIRED LIBRAIRIES (MAKE SURE TO POINT TO THE RIGHT FOLDER, ON MY SERVER I UPLOADED THE API FILES FROM GITHUB TO THE /LIB DIRECTORY) - ORDER MATTERS, MAKE SURE IT'S LOADED IN THIS ORDER

	require_once __DIR__ . '/lib/MauticApi.php'; 
	require_once __DIR__ . '/lib/Psr/Log/LogLevel.php';
	require_once __DIR__ . '/lib/Psr/Log/LoggerInterface.php';
	require_once __DIR__ . '/lib/Psr/Log/AbstractLogger.php';
	require_once __DIR__ . '/lib/Psr/Log/NullLogger.php';
	require_once __DIR__ . '/lib/Psr/Log/LoggerAwareInterface.php';
	require_once __DIR__ . '/lib/QueryBuilder/QueryBuilder.php';
	require_once __DIR__ . '/lib/QueryBuilder/WhereBuilder.php';
	require_once __DIR__ . '/lib/Api/Api.php';
	require_once __DIR__ . '/lib/Api/Assets.php';
	require_once __DIR__ . '/lib/Api/CampaignEvents.php';
	require_once __DIR__ . '/lib/Api/Campaigns.php';
	require_once __DIR__ . '/lib/Api/Categories.php';
	require_once __DIR__ . '/lib/Api/Companies.php';
	require_once __DIR__ . '/lib/Api/CompanyFields.php';
	require_once __DIR__ . '/lib/Api/ContactFields.php';
	require_once __DIR__ . '/lib/Api/Contacts.php';
	require_once __DIR__ . '/lib/Api/Data.php';
	require_once __DIR__ . '/lib/Api/Devices.php';
	require_once __DIR__ . '/lib/Api/DynamicContents.php';
	require_once __DIR__ . '/lib/Api/Emails.php';
	require_once __DIR__ . '/lib/Api/Files.php';
	require_once __DIR__ . '/lib/Api/Focus.php';
	require_once __DIR__ . '/lib/Api/Forms.php';
	require_once __DIR__ . '/lib/Api/Leads.php';
	require_once __DIR__ . '/lib/Api/Segments.php';
	require_once __DIR__ . '/lib/Api/Lists.php';
	require_once __DIR__ . '/lib/Api/Messages.php';
	require_once __DIR__ . '/lib/Api/Notes.php';
	require_once __DIR__ . '/lib/Api/Notifications.php';
	require_once __DIR__ . '/lib/Api/Pages.php';
	require_once __DIR__ . '/lib/Api/Points.php';
	require_once __DIR__ . '/lib/Api/PointTriggers.php';
	require_once __DIR__ . '/lib/Api/Reports.php';
	require_once __DIR__ . '/lib/Api/Roles.php';
	require_once __DIR__ . '/lib/Api/Smses.php';
	require_once __DIR__ . '/lib/Api/Stages.php';
	require_once __DIR__ . '/lib/Api/Stats.php';
	require_once __DIR__ . '/lib/Api/Tags.php';
	require_once __DIR__ . '/lib/Api/Themes.php';
	require_once __DIR__ . '/lib/Api/Tweets.php';
	require_once __DIR__ . '/lib/Api/Users.php';
	require_once __DIR__ . '/lib/Api/Webhooks.php';
	require_once __DIR__ . '/lib/Exception/AbstractApiException.php'; 
	require_once __DIR__ . '/lib/Exception/ActionNotSupportedException.php';
	require_once __DIR__ . '/lib/Exception/AuthorizationRequiredException.php'; 
	require_once __DIR__ . '/lib/Exception/ContextNotFoundException.php';
	require_once __DIR__ . '/lib/Exception/IncorrectParametersReturnedException.php';
	require_once __DIR__ . '/lib/Exception/RequiredParameterMissingException.php';
	require_once __DIR__ . '/lib/Exception/AbstractApiException.php';
	require_once __DIR__ . '/lib/Exception/UnexpectedResponseFormatException.php';
	require_once __DIR__ . '/lib/Response.php';
	require_once __DIR__ . '/lib/Auth/AuthInterface.php'; 
	require_once __DIR__ . '/lib/Auth/ApiAuth.php'; 
	require_once __DIR__ . '/lib/Auth/AbstractAuth.php'; 
	require_once __DIR__ . '/lib/Auth/OAuth.php'; 
	require_once __DIR__ . '/lib/Auth/BasicAuth.php'; 

	// INITIALIZING AUTH OBJECT
	use Mautic\Auth\ApiAuth;
	
	$initAuth = new ApiAuth();
	
	// CONNECTION PARAMETERS
	$apiUrl  = 'https://your.domain/mautic/'; // Your Mautic instance root directory
	$settings = array(
		'userName'   => 'api',  // Create a new user (regular user)
		'password'   => 'password'
	);
	
	$auth = $initAuth->newAuth($settings, 'BasicAuth');

	// USING MAUTIC'S API
	use Mautic\MauticApi;

	$api = new MauticApi();
	
	$contactApi = $api->newApi('contacts', $auth, $apiUrl);
	
	// IN THIS EXAMPLE I'M CHANGING THE OWNER OF THE CONTACT WITH THE ID = 999 TO THE USER WITH THE ID = 2
	$updatedData = array(
		'owner' => $_GET['value']
	);
	$response = $contactApi->edit('999', '2');
?>

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions