I’m using php and below is the code i;m using:
$url = "https://api.twitter.com/oauth/request_token";
$method = "POST";
$oauth_callback = 'http://my_website.com';
$oauth_consumer_key = 'consumer_key';
$oauth_consumer_key_secret = 'consumer_secret';
$oauth_nonce = time();
$oauth_signature_method = 'HMAC-SHA1';
$oauth_timestamp = time();
$oauth_version = '1.0';
$params = array(
'oauth_callback' => rawurlencode($oauth_callback),
'oauth_consumer_key' => rawurlencode($oauth_consumer_key),
'oauth_nonce' => rawurlencode($oauth_nonce),
'oauth_signature_method' => rawurlencode($oauth_signature_method),
'oauth_timestamp' => rawurlencode($oauth_timestamp),
'oauth_version' => rawurlencode($oauth_version)
);
ksort($params);
$parameter_string = http_build_query($params);
$base_string = $method . '&';
$base_string .= rawurlencode($url) . '&';
$base_string .= $parameter_string;
$oauth_signing_key = rawurlencode($oauth_consumer_key_secret) . '&';
$oauth_signature = base64_encode(hash_hmac('sha1', $base_string, $oauth_signing_key, true));
$params['oauth_signature'] = rawurlencode($oauth_signature);
ksort($params);
$post = '';
foreach($params as $key=>$value){
$post .= $key.'='.'"'.$value.'", ';
}
$post = rtrim($post, ", ");
$headers = array(
"POST /oauth/request_token HTTP/1.1",
"User-Agent: ",
"Host: api.twitter.com",
"Accept: */*",
"Authorization: OAuth ". $post
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, __DIR__.'/cacert.pem');
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$retrievedhtml = curl_exec ($ch);
curl_close($ch);
echo '<pre>';
print_r($headers);
print_r($retrievedhtml);
?>
Hope it helps!