我正在进行Twitter身份验证,一切似乎都运行良好,直到getAccessToken
返回Array ( [ ] => )
。
我做了什么:
第一阶段:
$connection = new TwitterOAuth('xxxxxxxx','xxxxxxxx');
$temporary_credentials = $connection->getRequestToken('http://example.com/profile.php?passurl=1');
$redirect_url = $connection->getAuthorizeURL($temporary_credentials);
$_COOKIE['oauth_token'] = $temporary_credentials['oauth_token'];
$_COOKIE['oauth_token_secret'] = $temporary_credentials['oauth_token_secret'];
header("Location: $redirect_url");
第二阶段(这是我遇到问题的地方)
$connection =
new TwitterOAuth(
'xxxxxxxxxx',
'xxxxxxxxxx',
$_COOKIE['oauth_token'],
$_COOKIE['oauth_token_secret']
);
$token_credentials = $connection->getAccessToken();
我打算在数据库中保存$token_credentials
值,但它会返回一个空数组:Array ( [ ] => )
我不对的是什么?
答案 0 :(得分:3)
您是否将“oauth_verifier”传递给getAccessToken方法?在您给出的示例代码中,您没有这样做。看一下这个图,特别是D部分
我过去曾使用过twitteroauth,我记得这样做过。 (开始第二个fase)
$twitterOauth = new TwitterOAuth($AppId, $twSecret, $_COOKIE['oauth_token'], $_COOKIE['oauth_token_secret']);
$twToken = $twitterOauth->getAccessToken($_REQUEST['oauth_verifier']);
$newTwitterOauth = new TwitterOAuth($AppId, $twSecret, $twToken['oauth_token'], $twToken['oauth_token_secret']);
$response = (array) $newTwitterOauth->get('account/verify_credentials');
var_dump($response);
我会做一些建议:
答案 1 :(得分:0)
你从哪里获得TwitterOAuth课程?这是标准课程吗?或者你自己写的?我会尝试调试类本身并在类函数中添加更详细的输出。
答案 2 :(得分:0)
你为什么要用cookies? 使用cookies是一种潜在的风险,因为它存储在客户端,而是使用SESSION
另一个问题:
在$redirect_url
如果您制作print_r
$_COOKIE['oauth_token']
和另一个$_COOKIE['oauth_token']
,则为空?
我问这个是因为如果你通过一些插件(比如firefox中的webdeveloper)或浏览器配置禁用cookie。也许你在$_COOKIE['oauth_token_secret']
上使用空值,
和{{1}}。