2016-08-26 16 views
11

में मौलिक एपीआई-लाइब्रेरी का उपयोग करते समय "validateAccessToken" नामक एक अपरिभाषित विधि को कॉल करने का प्रयास किया गया है, मैं अपने सिम्फनी प्रोजेक्ट के अंदर मौलिक/एपीआई-लाइब्रेरी का उपयोग करने की कोशिश कर रहा हूं। मैं PHP 5.6.14 के साथ सिम्फनी 2.8.9 का उपयोग कर रहा हूँ।सिम्फनी

मैंने संगीतकार में और 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" 

mautic ApiAuth वर्ग के अंदर देख रहे हैं, newAuth विधि कलेवा से एक इन्स्टेन्शियशन उपयोग करता है:

+०१२३५१६४१०६१
public function newAuth($parameters = array(), $authMethod = 'OAuth') 
{ 
    $class  = 'Mautic\\Auth\\'.$authMethod; 
    $authObject = new $class(); 

    ... 

    return $authObject; 
} 

अपवाद संदेश के अनुसार, प्रतिबिंब ओएथ क्लास इंस्टेंस को वापस नहीं कर रहा है। क्या किसी को पता है कि इसका क्या कारण है? मैंने जांच की है और मैं PHP और सिम्फनी के लिए न्यूनतम आवश्यकताओं को पूरा कर रहा हूं। क्या 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

आप उत्तर समझ में आता है। लेकिन इसने समस्या को हल नहीं किया। असल में त्रुटि संदेश बदल गया, लेकिन मुझे यकीन नहीं है कि यह समाधान है। यदि आप मौलिक/एपीआई-लाइब्रेरी दस्तावेज़ों (https://github.com/mautic/api-library) को देखते हैं तो यह संदर्भ द्वारा $ apiAuth का उपयोग करके, मैं सही तरीके से कर रहा हूं। किसी के पास कोई अन्य विचार है? –

+0

@hugomn नया त्रुटि संदेश क्या है? – lolmx