2012-03-28 3 views
1

Mit Facebook FQL Frage Ich möchte die Nachrichten aus einer Liste von Seiten zeigen, die ich Admin auf Facebook. Ich habe alle Berechtigungen richtig eingerichtet. Also, für eine SeiteWas ist der effizientere Weg, diesen Code zu bearbeiten, um Leistungseinbußen zu vermeiden?

SELECT message FROM stream WHERE source_id = 260781667265525

ich die letzten Beiträge.
Weil ich 1 Frage für jede Seite vermeiden möchte, habe ich das ohne Glück versucht. Vielleicht erlaubt es FB nicht.

SELECT message FROM stream WHERE source_id IN (260781667265525,144001959017107,126981654044612,245831082115900) 

Was ich will, erreichen, ist eine bessere Leistungs Code geschrieben, aber ich denke, ich habe IN auszuschließen (in dem Fall, dass ich mit der obigen Abfrage richtig bin).

Der Teil meines Codes Ich versuche, die neuesten Beiträge in jeder Seite ist unten enthalten.

$pagesFanCounts = $facebook->api("/fql", array(
    "q" => "SELECT page_id, name, fan_count FROM page WHERE page_id IN ({$pagesIds})" 
)); 

    foreach ($pagesFanCounts['data'] as $page){ 
     echo "{$page['name']} - {$page['fan_count']} fans", '<br />'; 
    } 

// names + fans are printed correctly. My goal is to add 2-3 of the latest posts of every page 


$latestPosts= $facebook->api("/fql", array("q" => "SELECT message FROM stream WHERE source_id = 260781667265525 LIMIT 2 ")); 
    foreach ($latestPosts['data'] as $post){ 
     echo "{$post['message']}", '<br />'; 
    } 
+0

keine Lösung als solche aber vielleicht können Sie diese Gruppe in eine Batch-Anforderung wie hier detailliert https://developers.facebook.com/docs/reference/api/batch/ – TommyBs

Antwort

0

Normalerweise sind 'IN' Anfragen sehr teuer. Sie könnten besser mit WHERE source_id IS '$ source1' ODER source_id IS '$ source2' ... und so weiter.

Eine andere Möglichkeit, gute Leistung zu erzielen, besteht darin, Abfragen einzeln auszuführen und programmgesteuert hinzuzufügen. Manchmal kann dies zu einer besseren Leistung führen.

$result = array(); 
foreach($pagesIds as $id) { 
    $pagesFanCounts = $facebook->api("/fql", array(
    "q" => "SELECT page_id, name, fan_count FROM page WHERE page_id IS $id" 
)); 
    $result[] = $pagesFanCounts['data']; 
} 
//now handle the data as you wish with $result 
Verwandte Themen