はじめまして!
基本的な事かもしれませんが、色々調べても分からなかったので助けてください!
現在、PEARのServices_Twitterを使って、TwitterAPIを使いたいと思っています。
2つのphpファイルを作り以下の流れでページ遷移していきたいと考えています
①(自作phpページ)認証用URLの取得
②(Twitter認証ページ)ユーザが許可ボタンを押す
③(自作phpページ)アクセストークン取得、API利用
ここで、①から③へセッション変数を使ってデータを渡しているのですが、一部のデータだけが上手く渡せません。
①のphpファイルは以下の内容になっています。
------------------------------------------------------------------①ここから
<?php
session_start();
$consumer_key = 'xxxxxxxxxxxxxxxxxxx'; //[取得した Consumer key]
$consumer_secret = 'xxxxxxxxxxxxxxx'; //[取得した Consumer secret]
include 'HTTP/OAuth/Consumer.php';
$_SESSION['consumer'] = new HTTP_OAuth_Consumer($consumer_key, $consumer_secret);
$http_request = new HTTP_Request2();
$http_request->setConfig('ssl_verify_peer', false);
$consumer_request = new HTTP_OAuth_Consumer_Request;
$consumer_request->accept($http_request);
$_SESSION['consumer']->accept($consumer_request);
// リクエストトークン を取得
$callback = 'aaaaaaaaaaaaa.html'; //[Twitter に登録した Callback URL]
$_SESSION['consumer']->getRequestToken('https://twitter.com/oauth/request_token', $callback);
$_SESSION['request_token'] = $_SESSION['consumer']->getToken();
$_SESSION['request_token_secret'] = $_SESSION['consumer']->getTokenSecret();
// 認証用 URL を取得
$auth_url = $_SESSION['consumer']->getAuthorizeUrl('https://twitter.com/oauth/authenticate');
print $auth_url;
?>
------------------------------------------------------------------①ここまで
この後、$auth_urlへ画面遷移して、Twitterの認証を経て、その後以下のphpへアクセスします。
------------------------------------------------------------------②ここから
<?php
session_start();
// アクセストークンを取得する
$verifier = $_GET['oauth_verifier'];
$_SESSION['consumer']->setToken($_SESSION['request_token']);
・・・
------------------------------------------------------------------②ここまで
このとき、$_SESSION['request_token']にはデータが入っている事が確認できたのですが、$_SESSION['consumer']はダメらしく、以下のメッセージが表示されてしまいます。
The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition HTTP_OAuth_Consumer of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in <b>/home/users/0/daa.jp-polig/web/tw_get2.php</b> on line <b>14</b><br />