Вопрос по php – Сессия, PHP Неполный класс

3

Я использую cakePHP 2.x. В настоящее время занимаюсь твиттером OAuth,http://code.42dh.com/oauth/.

function twitter_authentication()
{
            //assume above coding is all correct.   
    $this->Session->write('twitter_request_token', ($requestToken));
    $this->redirect('http://api.twitter.com/oauth/authenticate?force_login=true&oauth_token='.$requestToken->key); //I able to get $requestToken.
}

function twitter_login()
{
        $requestToken = $this->Session->read('twitter_request_token');
        $accessToken = $this->OAuthConsumer->getAccessToken('Twitter','https://api.twitter.com/oauth/access_token', $requestToken);

В функции function_login () мне не удалось прочитать сессию, и я получил PhP Incomplete Class. Если я сделаю$this->Session->write('twitter_request_token', serialize($requestToken)); а также$requestToken = $this->Session->read(unserialize('twitter_request_token'); это будет работать, но я буду в конечном итоге ошибка в других местах, которые вызваны использованием сеанса сериализации и десериализации.

Ваш Ответ

2   ответа
2

PHP Incomplete Class ; означает, что в PHP нет определения класса для объекта, который вы загружаете.

Вариант A: выясните, к какому классу относится этот объект, когда вы записываете его в сеанс, и убедитесь, что определение класса загружено перед загрузкой объекта.

Вариант B: преобразовать объект вstdClass или массив перед записью, и конвертировать обратно после загрузки. Это может быть более сложным, чем первый вариант.

Error: User Rate Limit Exceeded Maki92
Error: User Rate Limit ExceededApp::importError: User Rate Limit Exceeded
Error: User Rate Limit Exceededcode.42dh.com/oauthError: User Rate Limit Exceeded Maki92
0

ключом и секретом. Когда вы получите URL логина, вы можете сохранить его в сеансе в виде массива:

CakeSession::write('Twitter.requestToken', array(
    'key' => $requestToken->key,
    'secret' => $requestToken->secret
));

Затем создайте экземпляр своего собственного OAuthToken при вызове OAuthClient-> gA; getAccessToken () следующим образом:

$sessionRequestToken = CakeSession::read('Twitter.requestToken');
$accessToken = $twitterClient->getAccessToken('https://api.twitter.com/oauth/access_token', 
    new OAuthToken($sessionRequestToken['key'], $sessionRequestToken['secret']));

Должен быть готов к работе:

if ($accessToken) {
    $twitterClient->post($accessToken->key, $accessToken->secret, 
        'https://api.twitter.com/1/statuses/update.json', array('status' => 'My balls smells like A-1 sauce. #science'));
}

Похожие вопросы