我一直在使用twitter oauth和api,我有一个奇怪的问题。
我正在做的是生成请求链接,将请求令牌和秘密保存在会话变量中,然后当用户从twitter返回时,尝试检索这些密钥以将它们存储在数据库中。
当我执行以下内容时:
session_start();
$to = new TwitterOAuth($consumerkey, $consumersecret);
$tok = $to->getRequestToken();
$request_link = $to->getAuthorizeURL($tok);
$_SESSION["oauth_request_token"] = $token = $tok['oauth_token'];
$_SESSION["oauth_request_token_secret"] = $tok['oauth_token_secret'];
print_r($_SESSION)."<br>";
它显示会话数组包含我的值并且它们是正确的,但是当它从twitter返回时,print_r'ing会话数组不产生任何内容,对于echo也是如此。它就像它不存在或其他什么。
我在顶部第一行的两个页面上开始会话。
第二页上写着:
session_start();
echo $_SESSION["oauth_request_token"];
echo $_SESSION["oauth_request_token_secret"];
奇怪的是,如果我在第二页上手动声明会话变量,它可以正常工作。我错过了什么吗?
答案 0 :(得分:1)
看来,PHP无法正确保存会话。你能展示phpinfo()吗?可能是会话保存处理程序被覆盖。此外,尝试摆脱Twitter并使用会话变量在纯PHP中进行实验。这有用吗?
答案 1 :(得分:1)
是否正确设置了会话ID的cookie? 如果没有,则会话ID将在URL中传递,因此您必须确保将其正确发送到Twitter。
答案 2 :(得分:0)
结果会话特定于地址。
我是从
发送请求的http://website.com
它又回来了
http://www.website.com