FQL page_fan
Ik ben aan het proberen om de images van de facebook-users te laden die fan zijn van mijn eigen pagina. Ik weet dat hier een social-plugin van Facebook zelf voor is, maar die biedt weinig vrijheid.
Ik probeer om met FQL een query op te zetten waarin alle users worden opgehaald die mijn facebook page "liken". Echter is page_id geen index in deze tabel, maar alleen de user-id (uid).
De gebruikers hoeven niet in te loggen om de plaatjes te zien.
Op dit moment gebruik ik deze query:
Code (php)
1
SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid FROM page_fan WHERE page_id = 000000000000)
Maar omdat page_fan geen index op page_id heeft krijg ik een error.
Iemand hier ervaring mee of een mogelijke oplossing?
Welke error krijg je?
Dat page_id geen index is en dat ik in de WHERE clausule een indexeerbare parameter moet gebruiken.
Edit: Google op 'fql get page_fans from page': http://stackoverflow.com/questions/3560574/get-facebook-page-fans
Gewijzigd op 22/02/2011 13:13:59 door The Force
Quote:
file_get_contents(https://graph.facebook.com/183864994984196/members?limit=500&access_token=190883070943691|TRywDhcWIinJtcpRlXBsipmfoMM) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
gebruikte code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
require_once 'facebook.php';
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => '----',
'secret' => '----',
'cookie' => true,
));
try {
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
$accessToken = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id=190883070943691&client_secret=b169d4869cd49daefd4e8e6a97e6d2cc&grant_type=client_credentials');
echo $accessToken;
$results = file_get_contents('https://graph.facebook.com/183864994984196/members?limit=500&'.$accessToken);
echo '<pre>';
print_r($results);
echo '</pre>';
?>
require_once 'facebook.php';
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => '----',
'secret' => '----',
'cookie' => true,
));
try {
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
$accessToken = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id=190883070943691&client_secret=b169d4869cd49daefd4e8e6a97e6d2cc&grant_type=client_credentials');
echo $accessToken;
$results = file_get_contents('https://graph.facebook.com/183864994984196/members?limit=500&'.$accessToken);
echo '<pre>';
print_r($results);
echo '</pre>';
?>
edit:
Ik heb ervoor gekozen om het uit de groep te laden. Als volgt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
// Awesome Facebook Application
//
// Name: workshopaholics
//
require_once 'facebook.php';
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => '----',
'secret' => '----',
'cookie' => true,
));
try {
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
$result = $facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid FROM group_member WHERE gid = 138399492887607)'
));
echo '<pre>';
print_r($result);
echo '</pre>';
foreach($result as $user => $value)
{
echo '<img src="'.$value['pic_square'].'" alt="" />';
}
?>
// Awesome Facebook Application
//
// Name: workshopaholics
//
require_once 'facebook.php';
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => '----',
'secret' => '----',
'cookie' => true,
));
try {
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
$result = $facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid FROM group_member WHERE gid = 138399492887607)'
));
echo '<pre>';
print_r($result);
echo '</pre>';
foreach($result as $user => $value)
{
echo '<img src="'.$value['pic_square'].'" alt="" />';
}
?>
Gewijzigd op 22/02/2011 14:52:35 door Justin S
Heel mooi. Wellicht handig om de appId en je 'secret' token weg te halen?
haha thanks, had er niet op gelet. Ben trouwens toch weer aan de slag met die page.. Kan het niet verkroppen dat het niet kan
Facebook heeft het afgeschermd omdat het niet geindexeerd is en daarom het systeem te veel kan belasten. Zou wel mooi zijn als je een manier kan vinden om er omheen te werken, maar verwacht er niet te veel van.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
// Awesome Facebook Application
//
// Name: workshopaholics
//
require_once 'facebook.php';
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => '---',
'secret' => '---',
'cookie' => true,
));
try {
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
$result = $facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid FROM group_member WHERE gid = 197681136917749)'
));
echo '<pre>';
print_r($result);
echo '</pre>';
foreach($result as $user => $value)
{
echo '<img src="'.$value['pic_square'].'" alt="" />';
}
?>
// Awesome Facebook Application
//
// Name: workshopaholics
//
require_once 'facebook.php';
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => '---',
'secret' => '---',
'cookie' => true,
));
try {
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
$result = $facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid FROM group_member WHERE gid = 197681136917749)'
));
echo '<pre>';
print_r($result);
echo '</pre>';
foreach($result as $user => $value)
{
echo '<img src="'.$value['pic_square'].'" alt="" />';
}
?>