Проблема с Zend_Oauth - PullRequest
       7

Проблема с Zend_Oauth

2 голосов
/ 16 марта 2011

Может кто-нибудь проверить мой код ниже? Я пытаюсь связаться с Vzaar (.com) и не могу авторизоваться. Похоже, я отправляю правильный заголовок Authorization, но я не на 100%. Я не могу думать, что еще это.

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());
    }

}

1 Ответ

2 голосов
/ 16 марта 2011

Проблема заключалась в том, что API принимал только запросы GET. Doh!

public function __construct($sUsername, $sSecret) {
    /*** snip ***/
    $this->_oClient = $this->_oAuth->getHttpClient(array(
        'requestMethod' => Zend_Oauth_Client::GET
    ));
    /*** snip ***/
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...