Versio

FQL page_fan

Overzicht Reageren

Justin S

Justin S

22/02/2011 12:41:46
Quote Anchor link
Beste,

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)
PHP script in nieuw venster Selecteer het PHP script
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?
 
PHP hulp

PHP hulp

24/05/2012 17:58:56
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
The Force

The Force

22/02/2011 12:49:25
Quote Anchor link
Welke error krijg je?
 
Justin S

Justin S

22/02/2011 12:50:59
Quote Anchor link
Dat page_id geen index is en dat ik in de WHERE clausule een indexeerbare parameter moet gebruiken.
 
The Force

The Force

22/02/2011 13:11:25
Quote Anchor link
Theoretisch gezien is het dan niet mogelijk met FQL. Je kan niet van de tabel page naar page_fan komen. Je hebt geen JOIN's, geen GROUP BY's en HAVINGS. Uiteindelijk moet page_id van de 'page_fan' tabel toch in de WHERE komen.

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
 
Justin S

Justin S

22/02/2011 13:23:04
Quote Anchor link
Ah dat leek te werken met een group-id. Echter zodra ik mijn page-id invoer krijg ik deze error:

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>';
?>



edit:
Ik heb ervoor gekozen om het uit de groep te laden. Als volgt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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="" />';
        }

    
?>
Gewijzigd op 22/02/2011 14:52:35 door Justin S
 
The Force

The Force

22/02/2011 14:48:59
Quote Anchor link
Heel mooi. Wellicht handig om de appId en je 'secret' token weg te halen?
 
Justin S

Justin S

22/02/2011 14:53:01
Quote Anchor link
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
 
The Force

The Force

22/02/2011 15:12:40
Quote Anchor link
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.
 
Justin S

Justin S

22/02/2011 17:39:01
Quote Anchor link
Het is me gelukt als ik 'm op een group gooi. Kennelijk zijn pages een vorm van groepen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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="" />';
        }

    
?>
 



Overzicht Reageren