-
Total number of Facebook group members
Hello, I am trying to understand how to display the total number of Facebook group members. I managed to put this code together, but when I load it the page is blank:
Code:
<?php
require('facebook.php');
$config = array(
'appId' => 'MYAPPID',
'secret' => 'MYSECRETID',
'cookie' => true
);
$facebook = new Facebook($config);
$query = urlencode('SELECT count(uid) from group_member WHERE gid = MYGROUPID limit 500 offset 500');
try {
$fbData = $facebook->api("/fql?q={$query}");
} catch (FacebookApiException $e) {
$fbData
= $e->getResult();
};
var_dump($fbData);
?>
-
Re: Total number of Facebook group members
You should be contacting Facebook first.
-
Re: Total number of Facebook group members
Quote:
Originally Posted by
PeejAvery
You should be contacting Facebook first.
I already tried on the official Facebook Forums but was in vain
-
Re: Total number of Facebook group members
Well...I've never created any Facebook PHP apps, but one thing that comes directly to mind is that you aren't doing anything with the variable after sending your FQL query. Also, the group ID you're using only has 3 members anyway. So why are you limiting and offsetting by 500?
-
Re: Total number of Facebook group members
Quote:
Originally Posted by
PeejAvery
Well...I've never created any Facebook PHP apps, but one thing that comes directly to mind is that you aren't doing anything with the variable after sending your FQL query. Also, the group ID you're using only has 3 members anyway. So why are you limiting and offsetting by 500?
Do you have any experience with FB PHP SDK? How do you suggest to end the code so that the results are shown?
Thank you
-
Re: Total number of Facebook group members
I don't use the Facebook PHP SDK, so I cannot tell you...nor do I have the time to go researching it.
However, I can tell you that you should remove the limit and offset from the query. And that $fbData will probably be some sort of object or multidimensional array. Use var_dump() on it to find out.
-
Re: Total number of Facebook group members
It is an array...
Code:
<?php
require('facebook.php');
$config = array(
'appId' => 'MYAPPID',
'secret' => 'MYSECRETID',
'cookie' => true
);
$facebook = new Facebook($config);
$query = urlencode('SELECT count(uid) from group_member WHERE gid = MYGROUPID limit 500 offset 500');
try {
$fbData = $facebook->api("/fql?q={$query}");
} catch (FacebookApiException $e) {
$fbData
= $e->getResult();
};
var_dump($fbData);
?>
-
Re: Total number of Facebook group members
You still haven't removed the limit or offset. Plus, you have two variables of $fbData...so you cannot tell whether there is an error in the try statement or not. See what the following does.
PHP Code:
<?php
require('facebook.php');
$config = array(
'appId' => '350224611710644',
'secret' => 'a604150d3b8184002d1f04448724d17c',
'cookie' => true
);
$facebook = new Facebook($config);
$query = urlencode("SELECT count(uid) FROM group_member WHERE gid = 457030854323270");
try {
$fbData = $facebook->api("/fql?q={$query}");
var_dump($fbData);
} catch (FacebookApiException $e) {
echo 'Error occurred:<br />';
var_dump($e->getResult());
};
?>
-
Re: Total number of Facebook group members
I've updated the file (added a semicolon before "var_dump")
-
Re: Total number of Facebook group members
It's telling you that the authentication you're using isn't correct. Double check your app ID and secret.
-
Re: Total number of Facebook group members
Quote:
Originally Posted by
PeejAvery
It's telling you that the authentication you're using isn't correct. Double check your app ID and secret.
Done it. The data are right. o_O
-
Re: Total number of Facebook group members
For some reason Facebook must not like the count() functionality in SQL. Instead, you have to count the returned results.
PHP Code:
<?php
require_once('facebook.php');
$config = array(
'appId' => '350224611710644',
'secret' => 'a604150d3b8184002d1f04448724d17c',
'cookie' => true
);
$facebook = new Facebook($config);
$query = urlencode("SELECT uid FROM group_member WHERE gid = 457030854323270");
try {
$fbData = $facebook->api("/fql?q={$query}");
echo count($fbData['data']);
} catch (FacebookApiException $e) {
echo 'Error occurred:<br />';
var_dump($e->getResult());
};
?>
-
Re: Total number of Facebook group members
Quote:
Originally Posted by
PeejAvery
For some reason Facebook must not like the
count() functionality in SQL. Instead, you have to count the returned results.
PHP Code:
<?php
require_once('facebook.php');
$config = array(
'appId' => '350224611710644',
'secret' => 'a604150d3b8184002d1f04448724d17c',
'cookie' => true
);
$facebook = new Facebook($config);
$query = urlencode("SELECT uid FROM group_member WHERE gid = 457030854323270");
try {
$fbData = $facebook->api("/fql?q={$query}");
echo count($fbData['data']);
} catch (FacebookApiException $e) {
echo 'Error occurred:<br />';
var_dump($e->getResult());
};
?>
It works. How is that FB API?
Thanks a lot again.
-
Re: Total number of Facebook group members
Not hard for a PHP developer. It's just that I had to go through and download the Facebook PHP SDK as well as check documentation to see how their FQL queries work.
Were it just plain PHP...that would not be an issue. But the moment questions appear in the forum that pertain to 3rd party libraries...then we developers have to study those 3rd party libraries first before we can answer questions. Sometimes we have the time to do that...sometimes we do not.
-
Re: Total number of Facebook group members
I have updated my code
Code:
<div>
<?php
require_once('<?php bloginfo(\'template_directory\'); ?>/fb_api/facebook.php');
$config = array(
'appId' => 'MYAPPID',
'secret' => 'MYSECRETID',
'cookie' => true
);
$facebook = new Facebook($config);
$query = urlencode("SELECT uid FROM group_member WHERE gid = MYGROUPID");
try {
$fbData = $facebook->api("/fql?q={$query}");
echo count($fbData['data']);
} catch (FacebookApiException $e) {
echo 'Errore:<br />';
var_dump($e->getResult());
};
?>
</div>
now the error shown are these:
Warning: require_once(<?php bloginfo('template_directory'); ?>/fb_api/facebook.php) [function.require-once]: failed to open stream: No such file or directory in /home/zardmediagroup/wp-content/plugins/advanced-text-widget/advancedtext.php(79) : eval()'d code on line 3
Fatal error: require_once() [function.require]: Failed opening required '<?php bloginfo('template_directory'); ?>/fb_api/facebook.php' (include_path='.:/usr/share/php5:/usr/share/php') in /home/zardmediagroup/wp-content/plugins/advanced-text-widget/advancedtext.php(79) : eval()'d code on line 3
-
Re: Total number of Facebook group members
No...the override all depends on the actual web server. Your host probably has it configured to not be user changeable.
However, the problem isn't the include directly. It's how you're including the file. You need to use relative path...not the full directory. The ability to include cross-domain files creates huge security holes in any online development.
-
Re: Total number of Facebook group members
Changed the path to this:
Code:
<div>
<?php
require_once('/home/zardmediagroup/wp-content/themes/romeo_e_giulietta/fb_api/facebook.php');
$config = array(
'appId' => 'MYAPPID',
'secret' => 'MYSECRETID',
'cookie' => true
);
$facebook = new Facebook($config);
$query = urlencode("SELECT uid FROM group_member WHERE gid = MYGROUPID");
try {
$fbData = $facebook->api("/fql?q={$query}");
echo count($fbData['data']);
} catch (FacebookApiException $e) {
echo 'Errore:<br />';
var_dump($e->getResult());
};
?>
</div>
But this time I'm having a "Headers already sent" errors:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/zardmediagroup/wp-includes/class.wp-scripts.php:65) in /home/zardmediagroup/wp-content/themes/romeo_e_giulietta/fb_api/facebook.php on line 37
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/zardmediagroup/wp-includes/class.wp-scripts.php:65) in /home/zardmediagroup/wp-content/themes/romeo_e_giulietta/fb_api/facebook.php on line 37
-
Re: Total number of Facebook group members
All header data must be setup before any output. In this case, you have a <div> starting out. I'm guessing that when creating a new instance of Facebook() that it includes header information. So put that PHP code at the top of your page.
PHP Code:
<?php
require_once('/home/zardmediagroup/wp-content/themes/romeo_e_giulietta/fb_api/facebook.php');
$config = array(
'appId' => '350224611710644',
'secret' => 'a604150d3b8184002d1f04448724d17c',
'cookie' => true
);
$facebook = new Facebook($config);
$query = urlencode("SELECT uid FROM group_member WHERE gid = 457030854323270");
try {
$fbData = $facebook->api("/fql?q={$query}");
$member_count = count($fbData['data']);
} catch (FacebookApiException $e) {};
?>
<div><?php echo $member_count; ?></div>
-
Re: Total number of Facebook group members
Quote:
Originally Posted by
PeejAvery
All header data must be setup before any output. In this case, you have a <div> starting out. I'm guessing that when creating a new instance of Facebook() that it includes header information. So put that PHP code at the top of your page.
PHP Code:
<?php
require_once('/home/zardmediagroup/wp-content/themes/romeo_e_giulietta/fb_api/facebook.php');
$config = array(
'appId' => '350224611710644',
'secret' => 'a604150d3b8184002d1f04448724d17c',
'cookie' => true
);
$facebook = new Facebook($config);
$query = urlencode("SELECT uid FROM group_member WHERE gid = 457030854323270");
try {
$fbData = $facebook->api("/fql?q={$query}");
$member_count = count($fbData['data']);
} catch (FacebookApiException $e) {};
?>
<div><?php echo $member_count; ?></div>
Ok I see, thx
-
Re: Total number of Facebook group members
Quote:
Originally Posted by
PeejAvery
All header data must be setup before any output. In this case, you have a <div> starting out. I'm guessing that when creating a new instance of Facebook() that it includes header information. So put that PHP code at the top of your page.
PHP Code:
<?php
require_once('/home/zardmediagroup/wp-content/themes/romeo_e_giulietta/fb_api/facebook.php');
$config = array(
'appId' => '350224611710644',
'secret' => 'a604150d3b8184002d1f04448724d17c',
'cookie' => true
);
$facebook = new Facebook($config);
$query = urlencode("SELECT uid FROM group_member WHERE gid = 457030854323270");
try {
$fbData = $facebook->api("/fql?q={$query}");
$member_count = count($fbData['data']);
} catch (FacebookApiException $e) {};
?>
<div><?php echo $member_count; ?></div>
For some reason this script doesn't return anything (error nor the desired result).... why? I placed the first bit right after the doctype is opened.
-
Re: Total number of Facebook group members
Place the PHP code above EVERYTHING else. Then insert the echoing of the $member_count wherever you want it in the page.
-
Re: Total number of Facebook group members
Still not showing anything...
-
Re: Total number of Facebook group members
Are there any PHP errors being outputted? If not, are you using some sort of CSS reset? In that case, you're going to have to style the <div>. Right now, it may just have the text being a size 0 or the same color as the background.
Edit: View the source. I'm sure you'll see that it is there...just stylized to not be visible in HTML/CSS output.
-
Re: Total number of Facebook group members
mmmh yeah I made a reset stylesheet but DIV are set as display block (the "member count" div as well)