0

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 応答が返されることです。

4

1 に答える 1

2

追加しようとしましたか

'oauth_token' => $_REQUEST['oauth_token']

あなたの要求に?

$code = $tmhOAuth->request(
    'POST',
    $tmhOAuth->url('oauth/access_token', ''),
    array(
      'oauth_verifier' => $_REQUEST['oauth_verifier'],
      'oauth_token' => $_REQUEST['oauth_token']
    )
);
于 2012-10-09T22:27:21.237 に答える