我正在尝试使用twitteroauth PHP API将twitter登录与slim框架集成。 我已经通过在登录,注册,不同文件中的用户以及顶部索引处调用多个模块来划分我的索引页。
在我为fb存储会话之后,我的索引页面被重定向到fb登录,并使用中间件函数$ authorize在所有模块中检查它。
无论如何,我的Twitter登录代码位于fb登录成功后可见的用户页面中。
此外,我将我的页面渲染到jquery移动框架。
twitter按钮代码,即/ user / me。
<a class="twitterSignInButton" rel="external" href="twitterlogininit/"></a>
twitter登录代码,即users.php
内$app->get('/user/me/twitterlogininit/',function() use ($app){
$request_token=$app->twitter->getRequestToken('http://<domain>/App/user/me/twitterlogin/');
$_SESSION['oauth_token']=$request_token['oauth_token'];
$_SESSION['oauth_token_secret']=$request_token['oauth_token_secret'];
if($app->twitter->http_code==200){
// Let's generate the URL and redirect
$url = $app->twitter->getAuthorizeURL($request_token['oauth_token']);
$app->redirect($url);
} else {
// It's a bad idea to kill the script, but we've got to know when there's an error.
die('Something wrong happened.');
}
});
//twitter redirect
$app->get('/user/me/twitterlogin/',function() use ($app){
if(!empty($_GET['oauth_verifier']) && !empty($_SESSION['oauth_token']) && !empty($_SESSION['oauth_token_secret'])){
$app->twitteroauth = new TwitterOAuth('xxxxx', 'xxxxx', $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
$access_token = $app->twitteroauth->getAccessToken($_GET['oauth_verifier']);
$_SESSION['access_token'] = $access_token;
$user_info = $app->twitteroauth->get('account/verify_credentials');
print_r($user_info);
} else {
// Something's missing, go back to square 1
}
});
我得到的错误是
Slim Application Error
The application could not run because of the following error:
Details:
Message: Undefined index: oauth_token
File: /var/www/html/FoodKite/App/Libs/Twitter/twitteroauth.php
Line: 118
Stack Trace:
#0 /var/www/html/FoodKite/App/Libs/Twitter/twitteroauth.php(118): Slim::handleErrors(8, 'Undefined index...', '/var/www/html/F...', 118, Array)
#1 /var/www/html/FoodKite/App/Modules/Users.php(172): TwitterOAuth->getAccessToken('yiIL1eyvwGVOrQI...')
#2 [internal function]: {closure}()
#3 /var/www/html/FoodKite/App/Slim/Route.php(392): call_user_func_array(Object(Closure), Array)
#4 /var/www/html/FoodKite/App/Slim/Slim.php(1051): Slim_Route->dispatch()
#5 /var/www/html/FoodKite/App/index.php(154): Slim->run()
#6 {main}
经过大量搜索后,我发现其推特拒绝请求。因为时间戳。仍然可以找到任何解决方法
upadate:
我在facebook登录前添加了index.php上的所有代码。它工作得很好。使用主页上的按钮。
现在,如果我将按钮添加到我想要的页面,即/ user / app与主页的代码相同,它会给出相同的错误,我认为苗条现在是一个confloc。我在某处读到了关于苗条会话处理可能是其中一个问题吗?