Работа с MODX Revolution API

Создание ресурса с помощью MODX API казалось бы простое дело и много где описано, но вот незадача, столкнулся с проблемой авторизации, а точнее ошибкой "permission_denied", оказалось проблема с сессиями MODX? нужно было подключить их в файле отдельно, итого листинг кода создания нового ресурса через API ниже.


// Подключаем API MODX
define('MODX_API_MODE', true);
require_once  'index.php';

// Включаем сессии MODX и инициализируем контекст web
require_once 'config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');

// Включаем обработку ошибок
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_FATAL);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

// Логинимся в админку
$response = $modx->runProcessor('security/login', array('username' => 'admin', 'password' => '123456'));
if ($response->isError()) {
    $modx->log(modX::LOG_LEVEL_ERROR, $response->getMessage());
    return;
}

// Получаем данные из формы
$name  = isset($_REQUEST['name'])  ? htmlspecialchars($_REQUEST['name']) : null;
$phone = isset($_REQUEST['phone']) ? htmlspecialchars($_REQUEST['phone']) : null;
$email = isset($_REQUEST['email']) ? htmlspecialchars($_REQUEST['email']) : null;

// Создаем ресурс
$response = $modx->runProcessor('resource/create', array(
        'pagetitle' => 'Название_страницы',
        'alias' => $uniq_token = md5(uniqid(rand(),1)),
        'content' => '',
        'template' => 1,
        'published' => 1,
        'parent' => 1
));
if($response->isError()){
   $modx->log(modX::LOG_LEVEL_ERROR, $response->getMessage());
   return;
}
else{
   $object = $response->getObject();
   echo "Ресурс успешно создан! $object['id']";
}

// Получаем в качестве объекта вновь созданную страницу и записываем TVшки
$idResource = $response->response['object'];
$res = $modx->getObject('modResource', $idResource['id']);
$res->setTVValue('name', $name);
$res->setTVValue('phone', $phone);
$res->setTVValue('email', $email);
$res->save();
$modx->log(xPDO::LOG_LEVEL_ERROR, "Произошла ошибка при сохранении ТВ");

// Отправка уведомления на почту
$message = $modx->getChunk('myEmailTemplate'); // Чанк с письмом
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'info@site.pw');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Имя_отправителя');
$modx->mail->set(modMail::MAIL_SUBJECT,'Тема письма');
$modx->mail->address('to','Email_кому_отправлять');
$modx->mail->address('reply-to','Email_кому_отправлять_копия');
$modx->mail->setHTML(true);

if (!$modx->mail->send()) {
 $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
echo "Отправлено уведомление на почту";