thanks for reply.
I have developed PHP code for GNIP engagement API call,It works fine for me.To help others posting that code here.It might be useful -
<?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 = "<your value>";
$consumer_secret = "<your value>";
//below key tokens are from authorized users - access token for above app.This can be get by implementing login with twitter functionality with above app keys.when call back url redirected to our callback page, it returns below access token & access token secrets.need to use that.
$oauth_access_token = "<your value>";
$oauth_access_token_secret = "<your value>";
$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
$arrayPostFields['tweet_ids'] = array('757783811392364544');
//$arrayPostFields['engagement_types'] = array('impressions','engagements','favorites','retweets','replies','url_clicks','hashtag_clicks','detail_expands','permalink_clicks','media_clicks','app_install_attempts','app_opens','email_tweet','user_follows','user_profile_clicks','video_views');
$arrayPostFields['engagement_types'] = array('impressions','engagements','favorites','retweets','replies');
$arrayPostFields['groupings']['group1']['group_by'] = array('tweet.id','engagement.type');
$postfields = json_encode($arrayPostFields);
//print_r($json_post);echo "\n";die;
//$postfields='{"tweet_ids":["746719647324483586"],"engagement_types":["favorites"],"groupings": {"group1":{"group_by":["tweet.id","engagement.type"]}}}';
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;
}
// Make Requests
$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);
}
print_r($twitter_data);echo "\n";
?>