Abraham Williams Twitter oAuth PHP回调问题
我正在使用Abraham William的TwitterOAuth软件包构建一个应用程序。该应用程序运行良好,但我遇到了一个问题 大约有25%的用户试图安装该应用程序,但却无法安装。他们在Twitter页面上验证应用程序,然后单击“登录”(在Twitter网站上)。当他们被引用回Callback.php页面时,它会给他们一个空白页面。我无法找出问题所在,因为它适用于大多数用户。有什么想法吗 下面是callback.php代码:Abraham Williams Twitter oAuth PHP回调问题,php,twitter,twitter-oauth,Php,Twitter,Twitter Oauth,我正在使用Abraham William的TwitterOAuth软件包构建一个应用程序。该应用程序运行良好,但我遇到了一个问题 大约有25%的用户试图安装该应用程序,但却无法安装。他们在Twitter页面上验证应用程序,然后单击“登录”(在Twitter网站上)。当他们被引用回Callback.php页面时,它会给他们一个空白页面。我无法找出问题所在,因为它适用于大多数用户。有什么想法吗 下面是callback.php代码: <?php require_once("config_db.
<?php
require_once("config_db.php");
session_start();
// Include class & create
require_once("consumer-keys.php");
require_once("twitteroauth/twitteroauth/twitteroauth.php");
// User has selected to DENY access
if(!empty($_GET["denied"])) {
// could re-direct or display cancelled view/template
// we're just echoing out a message
echo "No deal! <a href='login.php'>Try again?</a>";
die();
}
// User has selected to ALLOW access for given token
if($_GET["oauth_token"] == $_SESSION["oauth_token"]) {
// Use generated request tokens (from session) to construct object
$tOAuth = new TwitterOAuth($consumerKey, $consumerSecret, $_SESSION["oauth_token"], $_SESSION["oauth_token_secret"]);
// Retrieve access token from Twitter
$accessToken = $tOAuth->getAccessToken();
//echo "RECEIVED TOKENS<br>";
// Check we have valid response
if(is_numeric($accessToken["user_id"])) {
// Save the access tokens to a DB (we're using a session)
$_SESSION["access_token"] = $accessToken;
//GET CREDENTIALS VIA API
$credentials = $tOAuth->get('account/verify_credentials');
//echo "HAS NUMERIC ID<br>";
//ISAAC ADD DB INFO
$query = "SELECT * FROM `t4i_app`.`users_twitter` WHERE user_id = '".$_SESSION["access_token"]["user_id"]."'";
$rs = mysql_query($query);
if(mysql_num_rows($rs)) {
//update query
//echo "user already exists..need to update";
$query = "UPDATE `t4i_app`.`users_twitter` SET `token` = '".$_SESSION["access_token"]["oauth_token"]."', `secret` = '".$_SESSION["access_token"]["oauth_token_secret"]."', `screen_name` = '".$credentials->screen_name."', `followers` = '".$credentials->followers_count."' WHERE `users_twitter`.`user_id` = '".$_SESSION["access_token"]["user_id"]."';";
mysql_query($query);
} else {
$query = "INSERT INTO `t4i_app`.`users_twitter` (`id` ,`screen_name` ,`token` ,`secret`, `user_id`, `followers`, `referer` ,`last_update` ,`date_registered`) VALUES (NULL, '".$credentials->screen_name."', '".$_SESSION["access_token"]["oauth_token"]."', '".$_SESSION["access_token"]["oauth_token_secret"]."', '".$_SESSION["access_token"]["user_id"]."', '".$credentials->followers_count."', '0', CURRENT_TIMESTAMP , CURRENT_TIMESTAMP);";
mysql_query($query);
}
//echo $query;
//echo mysql_error();
//print_r($_SESSION["access_token"]);
$message = array('status' => 'Test OAuth update. #testoauth');
$test = $tOAuth->post('statuses/update', array('status' => 'I just added the new APPNAME Twitter Application http://bit.ly/sampleurl'));
//echo "POSTED STATUS<br>";
//END ISAAC
// Remove request token session variables
unset($_SESSION["oauth_token"]);
unset($_SESSION["oauth_token_secret"]);
// Redirect to main page
header("location: http://www.mydomain.com/welcome.php");
} else {
//echo "TRYING TO REDIRECT <br>";
header("location: http://www.mydomain.com");
}
}
?>
- 为此,您需要在else中放置一个错误日志,如果get和会话中的oauth_令牌不匹配,您将在没有任何消息的情况下失败。可能是推特的反应不正常
- 另外,我会大写标题调用中的位置。我不是百分之百地认为每一个浏览器都会尊重它,当它不是位置:
为您的php应用程序启用。空白页是发生在某个地方的致命错误的标志。因此,如果启用了错误日志记录,您将发现这些错误被记录在案。这将帮助您了解偶尔发生的情况。如果您同时记录警告和通知,您甚至可能会发现更多错误,帮助您使脚本正常工作。感谢hakre提供的提示。我确实启用了错误日志记录,我一直在监视日志,但没有相关错误。还有其他想法吗?
if ($_GET["oauth_token"] == $_SESSION["oauth_token"])