2016-08-26 22 views
11

我試圖在我的Symfony項目中使用mautic/api庫。我在PHP 5.6.14上使用Symfony 2.8.9。嘗試在Symfony中使用Mautic api庫時調用未定義的名爲「validateAccessToken」的方法

我已經在作曲家和autoload.php文件中包含了api-library項目。在我的控制,我已經聲明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" 

尋找mautic ApiAuth類中,newAuth方法,通過恢復體力使用實例:

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

    ... 

    return $authObject; 
} 

根據異常消息,反射不返回OAuth類實例。有誰知道這是什麼原因造成的?我已經檢查過,並且滿足PHP和Symfony的最低要求。有什麼與PHP版本和反射有關的嗎?

在此先感謝。

回答

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

意思validateAccessTokenMautic\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(); 
    } 
} 
+0

@hugomn您可以檢查它是否解決問題了嗎? – lolmx

+0

你的回答很有道理。但它並沒有解決問題。其實錯誤信息已經改變,但我不確定這是否是解決方案。如果你看看mautic/api-library文檔(https://github.com/mautic/api-library),那麼我會按照確切的方式完成,使用$ apiAuth作爲參考。任何人有任何其他想法? –

+0

@hugomn新的錯誤信息是什麼? – lolmx

相關問題