2 votes

Problème avec Zend_Oauth

Quelqu'un peut-il vérifier mon code ci-dessous ? J'essaie de communiquer avec Vzaar(.com) et je ne peux pas autoriser. Il semble que j'envoie le bon Authorization la tête, mais je ne suis pas à 100%. Je ne vois pas de quoi d'autre il s'agit.

class Vzaar {
    /**
     *
     * @var Zend_Oauth_Token_Access
     */
    protected $_oAuth;
    /**
     *
     * @var Zend_Oauth_Client
     */
    protected $_oClient;
    protected $_sUsername;
    protected $_sSecret;
    protected $_sEndPoint = 'http://vzaar.com/api/';

    public function __construct($sUsername, $sSecret) {
        $this->_sUsername = $sUsername;
        $this->_sSecret = $sSecret;
        $this->_oAuth = new Zend_Oauth_Token_Access();
        $this->_oAuth->setToken($this->_sUsername);
        $this->_oAuth->setTokenSecret($this->_sSecret);
        $this->_oClient = $this->_oAuth->getHttpClient(array());
    }

    public function getVideos($sUsername = null) {
        if (null === $sUsername) {
            $sUsername = $this->_sUsername;
        }
        return $this->_request($sUsername . '/videos');
    }

    protected function _request($sUri) {
        $this->_oClient->setUri($this->_sEndPoint . 'test/whoami');
        $this->_oClient->setUri($this->_sEndPoint . $sUri . '.json');
        $this->_oClient->prepareOauth();
        Zend_Debug::dump($this->_oClient->getUri(true));
        Zend_Debug::dump($this->_oClient->getHeader('Authorization'));
        $oRequest = $this->_oClient->request();
        Zend_Debug::dump($oRequest->getHeaders());
        Zend_Debug::dump($oRequest->getRawBody());

        return Zend_Json::decode($oRequest->getBody());
    }

}

2voto

Simon Points 1662

Le problème était que l'API n'acceptait que les requêtes GET. Doh !

public function __construct($sUsername, $sSecret) {
    /*** snip ***/
    $this->_oClient = $this->_oAuth->getHttpClient(array(
        'requestMethod' => Zend_Oauth_Client::GET
    ));
    /*** snip ***/
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X