Come analizzare un facebook graph api risposta

Ho un facebook graph api richiesta che riporta questa risposta

Facebook\GraphObject Object
(
    [backingData:protected] => Array
        (
            [data] => Array
                    (
                        [0] => stdClass Object
                            (
                                [id] => 111
                                [from] => stdClass Object
                                    (
                                        [id] => 111
                                        [name] => fo bar
                                    )

                                [name] => etc

                            )

Ho provato a fare $reponse->{'backingData:protected'} ma non funziona.

Anche il successivo set di risultati è un link per le graph api, ma i risultati di questo è puro json.

    [paging] => stdClass Object
        (
            [cursors] => stdClass Object
                (
                    [after] => MTI3NzMzMTQwMzYy
                    [before] => MTAxNTQzNjI5NTY1NDAzNjM=
                )

            [next] => https://graph.facebook.com/v2.0/111/albums?access_token=xxxxv&limit=25&after=yyy
        )

Il mio codice

    $user_profile = (new FacebookRequest(
        $session, 'GET', '/me/albums'
    ))->execute()->getGraphObject();

    echo '<pre>'; print_r($user_profile); echo '</pre>';
  • $response->data[0]->id Penso
  • puoi postare il codice php qui?
  • Non ho ‘Possibile utilizzare un oggetto di tipo Facebook\GraphObject come matrice’
  • provare questo $data = $response->getData() poi print_r($data);
  • Aggiunto il codice di esempio e @bhushya no che non funziona
  • Voglio dire, hai provato $user_profile->getData() r8? o print_r($user_profile->getProperty('data'));
  • print_r($user_profile->getProperty('data')) produrre lo stesso output, tranne per [data] => Array, ma quando faccio $user_profile->getProperty('data')[0] ricevo errori
  • Cerchiamo di continuare questa discussione in chat.
  • può spiegare che cosa esatta di errore hai?

InformationsquelleAutor user9418 | 2014-07-22



3 Replies
  1. 17

    Ecco il modo:

            $user_profile = (new FacebookRequest(
            $session, 'GET', '/me/albums'
            ))->execute()->getGraphObject();
            $album =  $user_profile->getProperty('data');
    
            $album_data = $album->asArray();//this will do all job for you..
            foreach($album_data as $row){
                var_dump($row);
            }
    • Grazie, ma questo non fornisce alcuna uscita foreach, ho aggiunto la matrice di output nel tuo post di cui sopra. Ma quando si tenta di scorrere su di essa non viene generato.
    • il tipo di errore che hai ehrn stampato $user_profile->getProperty('data')[0]
    • [2014-07-22 22:33:41] production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Cannot use object of type Facebook\GraphObject as array' in /var/www/app/controllers/FacebookController.php:52 Stack trace: #0 [internal function]: Illuminate\Exception\Handler->handleShutdown() #1 {main} [] [] Uscita senza la [0] gist.github.com/anonymous/8e345f124f7efcd076b5
    • Puoi provare questo print_r($album_data->asArray())?? im sicuro che funzionerà 🙂
    • Grazie! che lavorato.
    • Ho aggiornato l’ans .. sei sempre il benvenuto… 🙂
    • Questa risposta dovrebbe essere accettato
    • Sono d’accordo, la risposta dovrebbe essere accettato. Ha un po ‘ aiutato con il mio Stackoverflow Domanda come sta mostrando i dati, ma il risultato è un pasticcio e non so come ottenere il valore di X

  2. 6

    Per la Nuova versione Graph API v2.5 di Facebook Leggi di leggere i dati come qui di seguito :

    $fb = new \Facebook\Facebook([
            'app_id' => 'KEY HERE',
            'app_secret' => 'SECRET HERE',
            'default_graph_version' => 'v2.5',
        ]);
     $asscee_t ="ACCESS TOKEN HERE";
        $response = $fb->get('/me/friends', $asscee_t);
            $get_data = $response->getDecodedBody(); //for Array resonse
            //$get_data = $response->getDecodedBody(); //For Json format result only
            echo $get_data['summary']['total_count']; die; //Get total number of Friends
    • Questo ha funzionato per me, Grazie.
  3. 4

    https://developers.facebook.com/docs/php/GraphObject/4.0.0

    getProperty

    getProperty(string $name, string $type = 'Facebook\GraphObject')
    Ottiene il valore di una chiave denominata per questo oggetto grafico. Se il valore è un valore scalare (stringa, numero, etc.) sarà restituito. Se è un array associativo, sarà restituito come un GraphObject cast appropriato sottoclasse tipo, se fornito.

     $user_profile = (new FacebookRequest(
            $session, 'GET', '/me/albums'
        ))->execute()->getGraphObject();
    
    $id = $user_profile->getProperty('id');

    lista completa di campo in https://developers.facebook.com/docs/graph-api/reference/v2.0/album

    • La funzione eval non cattura tutti i casi di utilizzo. Per esempio, la /mi/autorizzazione restituisce un estremamente brutto dati (non è una sorpresa c’) che non può essere analizzato con getProperty o almeno io non riuscivo a trovare una soluzione su internet che la ha utilizzata. Tuttavia, Bhushya la risposta è la strada da percorrere. Facebook è così stupido che mi ha restituito un graphobject contenente un array contenente un graphobject per una singola immissione di dati. E specificare nulla come dati[0] è del tutto inaccettabile per me come un programmatore. Plus, facebook cambia le cose un sacco e la nasconde in loro changelog nascosto nel sito dev. dtf

Lascia un commento