Попытка вызвать неопределенный метод с именем & quot; validateAccessToken & quot; при использовании Apache-библиотеки Mautic в Symfony

Я пытаюсь использовать mautic / api-library внутри моего проекта Symfony. Я использую Symfony 2.8.9 с PHP 5.6.14.

Я включил проект библиотеки api в composer и в файл autoload.php. В моем контроллере я объявил классы API-библиотек:

use Mautic\Auth\ApiAuth;
use Mautic\Auth\OAuth;

И попытался получить токен из моей установки mautic:

$settings = array(
'baseUrl'      => 'http://mymauticinstallation.com',
'version'      => 'OAuth1a',
'clientKey'    => 'myCLientKey',
'clientSecret' => 'mySecretClient',
'callback'     => 'https://api.mysymfonyapp.com/'
);
$auth = new ApiAuth();
$auth->newAuth($settings);
if ($auth->validateAccessToken()) {
if ($auth->accessTokenUpdated()) {
$accessTokenData = $auth->getAccessTokenData();
}
}

Но когда я пытаюсь запустить этот код, я получаю эту ошибку в моей консоли:

request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\UndefinedMethodException: "Attempted to call an undefined method named "validateAccessToken" of class "Mautic\Auth\ApiAuth"

Глядя внутрь Маврикия ApiAuth учебный класс, newAuth Метод использует инстанцирование путем рефекции:

public function newAuth($parameters = array(), $authMethod = 'OAuth')
{
$class      = 'Mautic\\Auth\\'.$authMethod;
$authObject = new $class();

...

return $authObject;
}

Согласно сообщению об исключении, отражение не возвращает экземпляр класса OAuth. Кто-нибудь знает, что вызывает это? Я проверил и отвечаю минимальным требованиям для PHP и Symfony. Есть что-нибудь, связанное с версией PHP и отражением?

Заранее спасибо.

11

Решение

request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\UndefinedMethodException: "Attempted to call an undefined method named "validateAccessToken" of class "Mautic\Auth\ApiAuth"

Означает метод validateAccessToken не существует в Mautic\Auth\ApiAuthна самом деле это не определено там, но в Mautic\Auth\OAuth,

// Mautic\Auth\ApiAuth
public function newAuth($parameters = array(), $authMethod = 'OAuth')
{
$class      = 'Mautic\\Auth\\'.$authMethod;
$authObject = new $class();

...

return $authObject; // <-- it returns an object, use it!
}

Так что вы пропустили, чтобы сохранить возвращенный объект в переменной, чтобы использовать его

$apiAuth = new ApiAuth();
$auth = $apiAuth->newAuth($settings);
if ($auth->validateAccessToken()) {
if ($auth->accessTokenUpdated()) {
$accessTokenData = $auth->getAccessTokenData();
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]