17

Meine Kundenfirma verwaltet Facebook-Seiten für mehrere tausend kleine Unternehmen. Wir haben eine Facebook-App entwickelt, die unseren Kunden den Prozess vereinfacht und es ihnen ermöglicht, schnell viele/alle Seiten auf einmal zu ändern.Wie kann ich viele Seiten als ein Administrator verwalten, ohne das API-Kontingent zu überschreiten?

Für jede geschäftliche Gründe hat unsere Kundenfirma nur einen ihrer Mitarbeiter als Administrator (zusammen mit dem Kleinunternehmer) für jede dieser Seiten hinzugefügt. Dieses Benutzerkonto hat unsere App hinzugefügt und wir greifen auf Seiten-Token zurück und verwenden diese Seiten-Token, um die Seite zu verwalten (Kontaktinformationen ändern, einen Tab hinzufügen, Pinnwand-Posts abrufen). Wir stoßen auf wirklich harte API-Anfrage-Limits. Im Moment können wir nur etwa 3 neue Facebook-Seiten pro Minute hinzufügen (was meiner Meinung nach vielleicht 6-10 API-Aufrufe erfordert, wenn alles gesagt und getan ist).

Ich habe Leute schätzen gesehen, dass Sie etwa 600 Anfragen/600 Sekunden für einen Zugriffstoken erlaubt sind, aber ich dachte, da wir die meiste Arbeit mit Seiten-Tokens machten, würden unsere Aktionen nicht auf eine einzige API angerechnet Grenze.

Weiß jemand sicher, ob die API-Limits auf einzelnen Token basieren, auch wenn sie technisch zum selben Benutzer gehören? Kann ich dieses Limit irgendwie umgehen, wenn ich bedenke, dass ich nicht wirklich mehr Admins zu diesen Seiten hinzufügen kann?

+1

Sorry ich denke ich war unklar. Wir erstellen diese Seiten momentan nicht. Diese Seiten existieren bereits. Mit einer Rate von ca. 3 Seiten pro Minute fügen wir die Seite unserem System hinzu. So erhalten wir ihr Zugangstoken, aktualisieren ihre Kontaktinformationen, fügen einen Tab hinzu und erhalten die Informationen auf dem Tab. –

+2

Die API-Anruflimits sollten pro Sitzung/Zugriffstoken sein, und viele große Apps verwalten hunderte von Seiten ohne Probleme. Daher weiß ich nicht, warum Sie hier ein Problem bekommen. Sind Sie sicher, dass Sie nicht versehentlich API-Aufrufe tätigen? ohne Token, das App-Token oder das Token für den Benutzerzugriff (anstelle eines Seitentokens) des Administrators? – Igy

+1

@Igy: Ich habe überprüft, und das ist der Workflow. 1) Rufen Sie an, um allgemeine Seiteninformationen mit unserem eigenen Zugriffstoken zu erhalten. 2) Rufen Sie an, um das Zugriffstoken der Seite mit dem Zugriffstoken des Administrators zu erhalten. 3) Rufen Sie an, um die Registerkarte mit dem Zugriffstoken der Seite hinzuzufügen. 4) Dann starten wir (möglicherweise) eine asynchrone Aufgabe, um den Namen der Registerkarte mit dem Zugriffstoken der Seite auf der Seite festzulegen. 5) Dann starten wir asynchrone Aufgaben, um Posts und Kommentare von der Seite zu holen. Das Problem kann in Schritt 5 sein; Wir verwenden anscheinend das Admin-Token. Da alle diese Seiten den gleichen Admin haben, denke ich, dass wir deshalb über die Quote gehen. –

Antwort

-3

Wir stoßen auf einige wirklich harte API-Anforderungslimits. Im Moment können wir nur ca. 3 neue Facebook-Seiten pro Minute hinzufügen

Ich würde das nicht als "harte" Grenze bezeichnen. Bild was ist, wenn eine große Anzahl von Anwendungen Hunderte oder Tausende von Seiten in wenigen Minuten ... Spam Spam !! 1

Ich habe gesehen, wie Menschen schätzen, dass eine sind Sie erlaubt über 600requests/600 Sekunden schaffen würde passieren würde, Für einen Zugriffstoken, aber ich dachte, dass, da wir die meiste Arbeit mit Seiten-Token machten, unsere Aktionen nicht auf ein einziges API-Limit angerechnet würden.

Das Limit wird nur basierend auf der App-ID erzwungen. Was genau tun Sie mit der API und als wer (Benutzer, Seite) spielt keine Rolle.

Gibt es eine Möglichkeit, um diese Grenze zu bekommen

eine große Anzahl von neuen Seiten in kurzen viel Zeit für mich klingt wie Spam Hinzufügen viel. Ich kann mir keinen guten Grund vorstellen, warum man das machen möchte.

+0

Sorry, ich denke, andere Informationen wie die Frage [hier] (http://stackoverflow.com/questions/5911068/facebook-graph-api-limit-doubt) sagen "per access token". Ich denke, sie meinten App-Zugriffs-Token. –

+0

Also im Allgemeinen was ich machen möchte (um schnell Änderungen an Hunderten von Facebook-Seiten vorzunehmen) ist unmöglich? –

+0

Es ist kein Spam, wenn viele Leute viele Seiten mit der gleichen App aktualisieren. Das grundlegende Problem ist, dass wir nicht skalieren können. Es gibt mehr als 3 Millionen Facebook-Seiten, wie erwarten sie ein Geschäft auf 3 Millionen mit 600 API-Anrufen in 10 Minuten – AGrunewald

2

Eigentlich ist es ganz einfach, Sie müssen nur ein Zugriffs-Token für die PAGE anfordern, nicht den Benutzer.

$mQuery=array('access_token'=> 'SELECT access_token FROM page WHERE page_id = 'page_id,  
        'album_id'=> 'SELECT object_id FROM album WHERE owner = '.page_id.' AND name = "Timeline Photos"'); 
    $multiQueryResult = $facebook->api(array('method'=>'fql.multiquery', 'queries'=>$mQuery)); 

Die erste Zeile zeigt das Zugriffstoken des Benutzers erhalten, und die zweite sein nur ein Beispiel für multiquery verwenden und die Anrufe reduzieren.

Sie können einen max von 50 Abfragen in einer multiquery

verwenden Und wenn Sie mehrere Dinge mit Ihrer Seite tun möchten, können Sie Batch-Anfrage verwenden. Dies ist ein Beispiel für das Buchen eines Status, Sie können mehr hinzufügen, bis 50 Batch-Anfragen im selben Anruf.

$v['body']['message']=htmlspecialchars_decode($v['message'], ENT_QUOTES); 
$v['body']['scheduled_publish_time']=strtotime($v['scheduled_publish_time']); 
$v['body']['published']='false'; 
$v['body']=http_build_query($v['body']); 
$batch[]=$v; 

try { 
    $batchresult = $facebook->api("/?batch=".urlencode(json_encode($batch)), 'POST', array('access_token'=>$access_token)); 
} catch (FacebookApiException $e) { 
    echo $e->getMessage(); 
} 
echo $batchresult; 

Ich hoffe, dies hilft.

2

Da @Julio Popócatl gemeint ist, könnte die Verwendung eines Seitenzugriffstokens (generiert aus einem langlebigen Benutzer-Token) eine gute Wahl sein.

Diese Seite Zugriffstoken einmal richtig erzeugt, sie wird nie ablaufen, so dass es zumindest eine weniger Abfrage Sie ausführen müssen.

Das Limit für API-Anfragen wird auf jede Anfrage angewendet, sei es von Benutzer, Seite, App, was auch immer. Sie fragen immer etwas zu Facebook-Schema, was auch immer die Quelle der Anfrage ist.

Using batch requests is a good idea too, wie es sein würde, mehrere Daten mit einer (oder weniger) Anfragen zu holen, als jede Anfrage einzeln zu machen.