tmhOAuth https://github.com/themattharris/tmhOAuthと呼ばれる Twitter API と対話するためにこの php ライブラリを使用していますが、永続的なユーザー アクセス トークンとトークン シークレットを取得するのに問題があります。私が現在取得しているものは、現在のブラウザタブでのみ持続すると思います。以下のコードでは、ユーザー トークンとユーザー シークレットをセッションに割り当てています。
function access_token($tmhOAuth) {
$tmhOAuth->config['user_token'] = $_SESSION['oauth']['oauth_token'];
$tmhOAuth->config['user_secret'] = $_SESSION['oauth']['oauth_token_secret'];
//store user token and secret to a session to be accessed on a different page
$_SESSION['u_token'] = $tmhOAuth->config['user_token'];
$_SESSION['u_secret'] = $tmhOAuth->config['user_secret'];
$code = $tmhOAuth->request(
'POST',
$tmhOAuth->url('oauth/access_token', ''),
array(
'oauth_verifier' => $_REQUEST['oauth_verifier']
)
);
if ($code == 200) {
$_SESSION['access_token'] = $tmhOAuth->extract_params($tmhOAuth->response['response']);
unset($_SESSION['oauth']);
header('Location: ' . tmhUtilities::php_self());
} else {
outputError($tmhOAuth);
}
}
次に、別のページからユーザー トークンとシークレットにアクセスします。
$tmhOAuth = new tmhOAuth(array(
'consumer_key' => 'xxx',
'consumer_secret' => 'xxx',
$_SESSION['u_token'],
$_SESSION['u_secret']
));
$tweet = 'tweet';
$code = $tmhOAuth->request('POST', $tmhOAuth->url('1/statuses/update'), array(
'status' => $tweet
));
echo json_encode($code); //I always get 401 here
?>
問題は、常に 401 応答が返されることです。