OAuth PHP cURL GET Request


#1

I’m making an OAuth library and am running across an issue with the Twitter implementation. While what I have already works for Flickr, and is returning the right access tokens and keys, when I make the request to the Twitter API for information, I receive the ambiguous Code 32: “Could not authenticate you”.

Could anyone have a look at the code below and point out where it’s going wrong? As said earlier, I believe it must be this step as the other steps are the same with flickr and are working fine, but this step is dealt with differently:

$oauth = array('oauth_consumer_key' => 'key',
          'oauth_signature_method' => 'HMAC-SHA1',
          'oauth_timestamp' => 1415633132,
          'oauth_nonce' => 1817099296,
          'oauth_version' => '1.0', 
		  'oauth_token' => token',
		  'oauth_signature' => 'signature'
		  );

function buildAuthorizationHeader($oauth){
    $r = 'Authorization: OAuth '; 
 
    $values = array(); //temporary key=value array
    foreach($oauth as $key=>$value)
        $values[] = "$key=\"" . rawurlencode($value) . "\""; 
 
    $r .= implode(',', $values);
    return $r; 
    
}
	
function sendRequest($oauth){
    $header = array( buildAuthorizationHeader($oauth), 'Expect:'); 
 
    $options = array(CURLOPT_HTTPHEADER => $header, 
                           CURLOPT_HEADER => false,
                           CURLOPT_URL => 'https://api.twitter.com/1.1/search/tweets.json?q=london',
						   CURLOPT_RETURNTRANSFER => true,
                           CURLOPT_SSL_VERIFYPEER => false); 
 
    $ch = curl_init(); 
    curl_setopt_array($ch, $options);
    $response = curl_exec($ch);
    curl_close($ch);
 
    return $response;
}