2010-12-02 12 views
8

Ich bin bei meinem Ende in wie die Abfragen Parameter Wert sollte aussehen. Um also eine Multiquery über die Graph-API-Bibliothek zu erhalten, wäre das Folgende die Code-Methode, um dies durchzuführen, soweit ich das beurteilen kann.Facebook Neues PHP-SDK für Graph-API - Multi-Abfrage

$param = array(
'method' => 'fql.multiquery', 
'queries' => $multiQuery, 
'callback' => ''); 
$queryresults = $facebook->api($param); 

Mit dieser Methode in der neuen PHP SDK-Bibliothek von Facebook, hat jemand diese Arbeit gemacht? Wenn ja, können Sie ein Beispiel dafür eingeben, wie Sie den vollständigen Wert der Variablen $multiQuery erstellen?

Ich habe mit diesem seit ein paar Tagen struggeling und ich finde nur Exmaples mit der alten PHP-Bibliothek.

Antwort

2

Warum ist es immer so, nachdem du tagelang deinen Kopf geschlagen hast, stellst du eine Frage und 5 Minuten später kommst du mit der Antwort auf dich selbst.

Also hier war meine schöne Erfahrung.

Da in PHP können Sie ein "//Zeichen verwenden, um eine Textzeichenfolge zu starten, bekam ich mein selbst stecken in der Flip-Flop-Funktion des doppelten Anführungszeichen und Anführungszeichen. Es dämmerte mir, dass die Abfragen, die in einer Multi-Abfrage definiert sind, in doppelte Anführungszeichen eingeschlossen sind.

So Lektion gelernt? Wenn Sie eine Where-Klausel verwenden, die einen String-Wert in einer Multi-Abfrage verwendet, stellen Sie sicher, dass Sie SINGLE QUOTES um den String-Wert verwenden, auf den Sie filtern.

BAD BAD - Das ist, was ich getan habe. Beachten Sie die Anführungszeichen um myvalue und myothervalue. FRECH!

$multiQuery = { 
    "query1":"select something from something where somecolumn = "myvalue"", 
    "query2":"select something from something where somecolumn = "myothervalue"" 
    }; 

gutes Beispiel - Überprüfen Sie nun myvalue und myothervalue.

$multiQuery = { 
    "query1":"select something from something where somecolumn = 'myvalue'", 
    "query2":"select something from something where somecolumn = 'myothervalue'" 
    }; 

jetzt So kann ich ...

$multiQuery = { 
     "query1":"select something from something where somecolumn = 'myvalue'", 
     "query2":"select something from something where somecolumn = 'myothervalue'" 
     }; 

$param = array(  
    'method' => 'fql.multiquery',  
    'queries' => $multiQuery,  
    'callback' => '');  
$queryresults = $facebook->api($param); 

Und wenn einer von euch fragen sich, was die tatsächliche Art der $multiQuery Variable ist (für Anfänger wie mich), es ist nur ein String-Daten Art. Es ist kein Array, nichts schlauer als Text.

+1

Bitte legen multiquery $ den Wert der einfachen Anführungszeichen. '$ multiquery = '{ " query1 ":" etwas aus etwas auswählen, wo somecolumn = \' myvalue \ '", " query2 ":" etwas aus etwas auswählen where somecolumn = \' myothervalue \ '" }'; ' – qasimzee

+0

falsche Syntax. ersetzen mit [, ] –

1

eine Reihe von Knoten-IDs mit ihren jeweiligen URLs Betrachtet man als Werte, die Sie

/** 
*A JSON-encoded dictionary of the queries to perform. The array contains a set of key/value pairs. 
*Each key is a query name, which can contain only alphanumeric characters and optional underscores. 
*Each key maps to a value containing a traditional FQL query. 
*/ 
$fql = '{'; 
foreach ($path as $key1 => $value1) { 
    $fql .= '"' . $key1 . '":"SELECT share_count, like_count, comment_count, total_count FROM link_stat WHERE url=\'' . $value1 . '\'",'; 
} 

$fql .= '}'; 

$param = array(
    'method' => 'fql.multiquery', 
    'queries' => $fql, 
    'callback' => '' 
); 
try { 
    $fqlresult = $facebook->api($param); 
} catch (FacebookApiException $e) { 
    watchdog('Facebook Query', 'Parsing error on node @node | @error', array('@node' => $key1, '@error' => $e), WATCHDOG_DEBUG); } 
0

Sie können versuchen, diese haben werden:

$multiQuery= array ("query1" => "query #1 goes here","query2" => "query #2 goes here"); 

$param = array(
'method' => 'fql.multiquery', 
'queries' => $multiQuery, 
'callback' => ''); 

$queryresults = $facebook->api($param); 
Verwandte Themen