1

我正在尝试使用 twitteroauth PHP API 将 twitter 登录与苗条框架集成。我通过包括几个模块来划分我的索引页面,例如登录、注册、不同文件中的用户,并在顶部的索引中调用它。

在我为 fb 存储会话并使用中间件函数 $authorize 在所有模块中检查它之后,我的索引页面被重定向到 fb 登录。

无论如何,我的 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}

经过大量搜索后,我发现 prolly 它的 twitter 拒绝请求。因为时间戳。仍然可以找到任何解决方法

更新:

在 facebook 登录之前,我在 index.php 上添加了所有代码。它工作得很好。与主页上的按钮。

现在,如果我将按钮添加到我想要的页面,即 /user/app 使用与主页相同的代码,它会给出相同的错误,我猜 slim 现在是一个 confloc。我在某处读到过关于瘦会话处理的内容,这可能是问题之一吗?

4

0 回答 0