ブラウザ上ではこのようなError。
5~11行目を見るとわかるように、requestTokenとaccessTokenの取得には成功しているのに、
なぜか、11行目でTwitter側から情報が取得できず、 "Sorry, that page does not exist","code":34
というメッセージが返ってきている。
ただ、この状態で、別画面に遷移してみると、認証されてユーザ情報が表示された。
ログイン時、ユーザ情報をTwitter側から更新する仕組みになっているが、
更新は行われず、取得したaccessTokenでログインのみした状態となったと思われる。
Notice (8): Undefined index: id_str [APP\controllers\users_controller.php, line 66]Code | Context ))); } $output = call_user_func_array(array(&$controller, $params['action']), $params['pass']);$consumer = OAuth_Consumer $requestToken = OAuthToken OAuthToken::$key = "XXXXXXXXXXXXXXXXXXXXX" OAuthToken::$secret = "XXXXXXXXXXXXXXXXXXXXX" $accessToken = OAuthToken OAuthToken::$key = "XXXXXXXXXXXXXXXXXXXXX" OAuthToken::$secret = "XXXXXXXXXXXXXXXXXXXXX" $json = "{"errors":[{"message":"Sorry, that page does not exist","code":34}]}" $twitterData = array( "errors" => array( array() ) )UsersController::twtrCallback() - APP\controllers\users_controller.php, line 66 Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 204 Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 171 [main] - APP\webroot\index.php, line 86 Notice (8): Undefined index: screen_name [APP\controllers\users_controller.php, line 67]Code | Context ))); } $output = call_user_func_array(array(&$controller, $params['action']), $params['pass']);$consumer = OAuth_Consumer $requestToken = OAuthToken OAuthToken::$key = "XXXXXXXXXXXXXXXXXXXXX" OAuthToken::$secret = "XXXXXXXXXXXXXXXXXXXXX" $accessToken = OAuthToken OAuthToken::$key = "XXXXXXXXXXXXXXXXXXXXX" OAuthToken::$secret = "XXXXXXXXXXXXXXXXXXXXX" $json = "{"errors":[{"message":"Sorry, that page does not exist","code":34}]}" $twitterData = array( "errors" => array( array() ) )UsersController::twtrCallback() - APP\controllers\users_controller.php, line 67 Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 204 Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 171 [main] - APP\webroot\index.php, line 86 Notice (8): Undefined index: profile_image_url [APP\controllers\users_controller.php, line 70]Code | Context ))); } $output = call_user_func_array(array(&$controller, $params['action']), $params['pass']);$consumer = OAuth_Consumer $requestToken = OAuthToken OAuthToken::$key = "XXXXXXXXXXXXXXXXXXXXX" OAuthToken::$secret = "XXXXXXXXXXXXXXXXXXXXX" $accessToken = OAuthToken OAuthToken::$key = "XXXXXXXXXXXXXXXXXXXXX" OAuthToken::$secret = "XXXXXXXXXXXXXXXXXXXXX" $json = "{"errors":[{"message":"Sorry, that page does not exist","code":34}]}" $twitterData = array( "errors" => array( array() ) )UsersController::twtrCallback() - APP\controllers\users_controller.php, line 70 Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 204 Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 171 [main] - APP\webroot\index.php, line 86 Warning (512): SQL Error: 1048: Column 'user_id' cannot be null [CORE\cake\libs\model\datasources\dbo_source.php, line 684]Code | Context if ($this->error) { $this->showQuery($sql);$sql = "INSERT INTO `users` (`user_id`, `user_name`, `access_token_key`, `access_token_secret`, `img_url`, `updated`, `created`) VALUES (NULL, NULL, 'XXXXXXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXX', NULL, '2012-10-15 16:15:39', '2012-10-15 16:15:39')" $error = "1048: Column 'user_id' cannot be null" $out = nullDboSource::showQuery() - CORE\cake\libs\model\datasources\dbo_source.php, line 684 DboSource::execute() - CORE\cake\libs\model\datasources\dbo_source.php, line 266 DboSource::create() - CORE\cake\libs\model\datasources\dbo_source.php, line 750 Model::save() - CORE\cake\libs\model\model.php, line 1342 User::update() - APP\models\user.php, line 52 UsersController::twtrCallback() - APP\controllers\users_controller.php, line 72 Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 204 Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 171 [main] - APP\webroot\index.php, line 86 Query: INSERT INTO `users` (`user_id`, `user_name`, `access_token_key`, `access_token_secret`, `img_url`, `updated`, `created`) VALUES (NULL, NULL, 'XXXXXXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXX', NULL, '2012-10-15 16:15:39', '2012-10-15 16:15:39') Warning (2): Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\rakuzon\cake\libs\debugger.php:686) [CORE\cake\libs\controller\controller.php, line 742]Code | Context */ function header($status) { header($status);$status = "Location: http://127.0.0.1/rakuzon/main/index"header - [internal], line ?? Controller::header() - CORE\cake\libs\controller\controller.php, line 742 Controller::redirect() - CORE\cake\libs\controller\controller.php, line 721 UsersController::twtrCallback() - APP\controllers\users_controller.php, line 82 Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 204 Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 171 [main] - APP\webroot\index.php, line 86https://dev.twitter.com/discussions/11595
ここに対処策が出ていた。 ユーザ情報を引き出す際のURLを以下のように変更したら正常に動作した。
http://twitter.com/account/verify_credentials.json
↓
http://api.twitter.com/1/account/verify_credentials.json
また、以下のページによると
https://dev.twitter.com/discussions/10803
現在以下を使用できないように変更中のようだ。
- All API endpoints on www.twitter.com and twitter.com.
- Endpoints on api.twitter.com without /1, /1.1 or /oauth in the fully qualified URL.
ただ、ソースの他の部分でまだtwitter.comで動いているところもあるので、
バージョンが無いのがダメだったということだろう。
twitter.comのままの部分は直さないと
今後またおかしなエラーが発生してしまうかもしれない。
0 件のコメント:
コメントを投稿