Wednesday 3 January 2018

How to implement cache system in php for json api

I have a few custom social buttons on my website for whom
I get the share number/followers number using json from API.
I have tried to
implement a cache system to reduce the load time and eliminate de risk of being
'red-flagged' for over-using the APIs. However, I had no success in this area, basically
because I don't quite understand the integration steps.
I hope someone could
help me integrate a cache system.



Here are the
php codes for Twitter, Google Plus and
Instagram:








ob_start();
$twittershare =
'http://cdn.api.twitter.com/1/urls/count.json?url='.$product["href"]
.'';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
$twittershare);
curl_setopt($ch, CURLOPT_HEADER, 0);
$jsonstring =
curl_exec($ch);
curl_close($ch);
$bufferstr =
ob_get_contents();
ob_end_clean();
$json =
json_decode($bufferstr);

echo
$json->count;





  • Google
    Plus






$url = ''.$product["href"] .'';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,
"https://clients6.google.com/rpc?key=xxxxxxxxxx");
curl_setopt($ch,
CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
'[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url .
'","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,
CURLOPT_HTTPHEADER, array('Content-type: application/json'));

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$curl_results =
curl_exec($ch);
curl_close($ch);
$json =
json_decode($curl_results, true);
$count =
intval($json[0]['result']['metadata']['globalCounts']['count']);
$data =
array();
$data['plus_count'] = (string) $count;
$data['url'] =
$url;
echo
$data['plus_count'];




  • Instagram
    (fetching followers
    number)






ob_start();
$insta =
'https://api.instagram.com/v1/users/00000000?access_token={token}';


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $insta);

curl_setopt($ch, CURLOPT_HEADER, 0);
$jsonstring = curl_exec($ch);

curl_close($ch);
$bufferstr = ob_get_contents();

ob_end_clean();
$json = json_decode($bufferstr);

echo
$json->data->counts->followed_by;



Hope
you guys can guide me step by step as to how to implement a cache system for the code
snippets above.

No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...