背景信息:我尝试使用twitter api登录用户。到目前为止,我试图调用twitter api并验证用户身份。 $url
会提示Twitter登录页面并询问用户是否允许。 (该位至少有效)然后它不会重定向到homepage.php
。
我的index.php:
require_once 'login/twitteroauth-0.6.2/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
define(CONSUMER_KEY, 'SDH7YHUbdMUtt39G5cIEpSp9s');
define(CONSUMER_SECRET, 'd0sKDopzytHlDxUDvudwepxBHDSoaeKgVL2tzLVqxcng5se2Hi');
define(OAUTH_CALLBACK, 'http://127.0.0.1/example_project/callback.php');
if (!isset($_SESSION['access_token'])) {
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
$request_token = $connection->oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
$_SESSION['oauth_token'] = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
echo $url;
} else {
$access_token = $_SESSION['access_token'];
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']);
$user = $connection->get("account/verify_credentials");
}
我的callback.php:
session_start();
require_once 'login/twitteroauth-0.6.2/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
if(isset($_REQUEST['oauth_verifier']) && $_REQUEST['oauth_token'] && $oauth_token===$oauth_verifier){
$request_token = [];
$request_token['oauth_token'] = $_SESSION['oauth_token'];
$request_token['oauth_token_secret'] = $_SESSION['oauth_token_secret'];
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $request_token['oauth_token'], $request_token['oauth_token_secret']);
$access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier']));
$_SESSION['access_token'] = $access_token;
// redirect user back to index page
header('Location: ./');
echo 'callback.php: everything is good';
} else{
echo "callback.php: something has gone wrong";
}
答案 0 :(得分:0)
我刚刚在callback.php中注意到了这一点
// redirect user back to index page
header('Location: ./');
不应该将标题重定向到home.php?
header('Location: /home.php');