Hello LeBraat,
I have implemented oauth 1.0 for authentication for @8WeekApp here, http://smartops.co.in/twitterapp/callback.php . And i authenticated another account @storzzzcom with this above URL
now i am using the below code to access the impression data and want to fetch the impression of a tweet made from @storzzzcom
<?php
$url = "https://data-api.twitter.com/insights/engagement/totals";
//$url = "https://data-api.twitter.com/insights/engagement/historical";
//$url = "https://data-api.twitter.com/insights/engagement/28hr";
//this token from your twitter app
$consumer_key = "8weekapp COUNSUMER KEY";
$consumer_secret = "8weekapp COUNSUMER SECRET";
//8weekapp
$oauth_access_token = "8weekapp ACCESS TOKEN";
$oauth_access_token_secret = "8weekapp ACCESS TOKEN SECRET";
$oauth = array( 'oauth_consumer_key' => $consumer_key,
'oauth_nonce' => time(),
'oauth_signature_method' => 'HMAC-SHA1',
'oauth_token' => $oauth_access_token,
'oauth_timestamp' => time(),
'oauth_version' => '1.0');
$base_info = buildBaseString($url, 'POST', $oauth);
$composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret);
$oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true));
$oauth['oauth_signature'] = $oauth_signature;
// this tweet id from authorized users tweet
//8weekapp
$arrayPostFields['tweet_ids'] = array('1014746768695840768','1015045078912466945','1013223109783113728','1037709670960558080'); //one tweet id from the
$arrayPostFields['engagement_types'] = array('impressions','engagements','favorites','retweets','replies');
$arrayPostFields['groupings']['group1']['group_by'] = array('tweet.id','engagement.type');
$postfields = json_encode($arrayPostFields);
function buildBaseString($baseURI, $method, $params) {
$r = array();
ksort($params);
foreach($params as $key=>$value){
$r[] = "$key=" . rawurlencode($value);
}
return $method."&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r));
}
function buildAuthorizationHeader($oauth) {
$r = 'Authorization: OAuth ';
$values = array();
foreach($oauth as $key=>$value)
$values[] = "$key=\"" . rawurlencode($value) . "\"";
$r .= implode(', ', $values);
return $r;
}
$header = array(buildAuthorizationHeader($oauth), 'Accept-Encoding: gzip','Content-Type: application/json');
//Accept-Encoding: gzip
$options = array( CURLOPT_HTTPHEADER => $header,
CURLOPT_POSTFIELDS => $postfields,
CURLOPT_HEADER => false,
CURLOPT_URL => $url ,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false);
$ch = curl_init();
curl_setopt_array($ch, $options);
$buffer = curl_exec($ch);
//echo 'errno:' . curl_errno($ch);
//echo 'error text:' . curl_error($ch);
//echo "\n";
curl_close($ch);
$twitter_data_json = gzinflate(substr($buffer, 10, -8));
if($twitter_data_json!="")
{
$twitter_data = json_decode($twitter_data_json, true);
}
echo "<pre>";
print_r($twitter_data);echo "\n";
exit;
?>