Fix for Drupal 'Social Share Counter' module - Facebook Counter Not Working

I have been using Drupal's Social Share counter module for some time already. It worked great until recently it stopped and all posts were showing 0 shares.

After a quick research on the modules issue page, I found the solution: Facebook share counter not working

Facebook has changed its API recently, so the URL http://graph.facebook.com/?id=URL, which is used by the module no longer works and the share counter is always 0.

There is also a patch provided to fix this issue:

diff --git a/sites/all/modules/contrib/social_share_counter/social_share_counter.inc b/sites/all/modules/contrib/social_share_counter/social_share_counter.inc
index cd85c09b4..48cf292da 100644
--- a/sites/all/modules/contrib/social_share_counter/social_share_counter.inc
+++ b/sites/all/modules/contrib/social_share_counter/social_share_counter.inc
@@ -1,5 +1,7 @@
 <?php
 
+define('FACEBOOK_API_URL', 'https://graph.facebook.com/?id=%&fields=og_object{engagement}&format=json');
+
 /**
  * @file
  * File contains functions for individual share count from all Social service.
@@ -11,10 +13,11 @@
  */
 function get_count_facebook($url) {
   $count = 0;
-  $response = _social_share_counter_parse("http://graph.facebook.com/?id=" . $url);
+  $url = str_replace('%', $url, FACEBOOK_API_URL);
+  $response = _social_share_counter_parse($url);
   $result = json_decode($response);
-  if (isset($result->share)) {
-    $count = formatNumberAbbreviation($result->share->share_count);
+  if (isset($result->og_object->engagement->count)) {
+    $count = formatNumberAbbreviation($result->og_object->engagement->count);
   }
 
   return $count;

After patching social share counter was back and counting. Hope it helps

Add new comment