17

La mia società cliente gestisce pagine Facebook per diverse migliaia di piccole imprese. Abbiamo creato un'app per Facebook che consente al nostro cliente di semplificare il processo e consentire loro di apportare rapidamente modifiche a molte/tutte le pagine in un'unica soluzione.Come posso gestire molte pagine come un utente amministratore senza superare la quota API?

Per qualsiasi insieme di motivi aziendali, la nostra azienda cliente ha appena UNO dei dipendenti aggiunto come amministratore (insieme al proprietario della piccola impresa) per ciascuna di queste pagine. Questo account utente ha aggiunto la nostra app e stiamo acquisendo token di pagina e utilizzando quei token di pagina per gestire la pagina (modificare le informazioni di contatto, aggiungere una scheda, recuperare i messaggi a muro). Ci stiamo confrontando con alcuni limiti di richiesta di api davvero difficili. Al momento possiamo solo aggiungere circa 3 nuove pagine di Facebook al minuto (che credo richieda forse 6-10 chiamate api quando tutto è detto e fatto).

Ho visto persone stimare che sei autorizzato a circa 600 richieste/600 secondi per un token di accesso ma ho pensato che dal momento che stavamo facendo la maggior parte del lavoro con token di pagina le nostre azioni non sarebbero state conteggiate per un singolo API limite.

Qualcuno sa per certo se i limiti API sono basati su token individuali anche se tecnicamente appartengono allo stesso utente? C'è un modo per aggirare questo limite considerando che non posso aggiungere davvero più amministratori a queste pagine?

+1

Scusa Penso di non essere stato chiaro. Non stiamo creando queste pagine in questo momento. Queste pagine esistono già. Ad una velocità di circa 3 pagine al minuto stiamo "aggiungendo la pagina" al nostro sistema. Quindi otteniamo il loro token di accesso, aggiorniamo le informazioni di contatto, aggiungiamo una scheda e otteniamo le informazioni nella scheda. –

+2

I limiti delle chiamate API devono essere per sessione/token di accesso e molte app di grandi dimensioni gestiscono centinaia di pagine senza problemi, quindi non so perché avresti riscontrato un problema qui - sei sicuro di non aver fatto accidentalmente chiamate API? senza token, il token dell'app o il token di accesso utente (al posto di un token di pagina)? – Igy

+1

@Igy: ho ricontrollato e questo è il flusso di lavoro. 1) Chiama per ottenere informazioni generali sulla pagina utilizzando il nostro token di accesso. 2) Chiama per ottenere il token di accesso della pagina utilizzando il token di accesso dell'amministratore. 3) Chiama per aggiungere la scheda utilizzando il token di accesso alla pagina. 4) Quindi (eventualmente) dare il via ad attività asincrone per impostare il nome della scheda sulla pagina usando il token di accesso alla pagina. 5) quindi iniziamo compiti asincroni per recuperare post e commenti dalla pagina. Il problema potrebbe essere nel passaggio 5; stiamo usando apparentemente il token dell'amministratore. Poiché tutte queste pagine hanno lo stesso Admin, penso che questo sia il motivo per cui superiamo la quota. –

risposta

-3

Ci stiamo confrontando con alcuni limiti di richiesta di api davvero difficili. Al momento possiamo aggiungere solo 3 nuove pagine Facebook al minuto

Non definirei affatto un limite "duro". Immagina cosa succederebbe se un gran numero di app creasse centinaia o migliaia di pagine in minuti ... spam Spam SPAM !! 1

Ho visto persone stimare che a te è permesso circa 600 richieste/600 secondi per un token di accesso ma pensavo che dal momento che stavamo facendo la maggior parte del lavoro con token di pagina le nostre azioni non sarebbero state conteggiate per un unico limite di API.

Il limite viene applicato solo in base all'ID app. Cosa esattamente come stai facendo con l'API e come chi (utente, pagina) non ha importanza.

non v'è alcun modo per aggirare questo limite

L'aggiunta di un gran numero di nuove pagine in brevi periodi di tempo suona come spam per me, molto. Non riesco a pensare a una buona ragionemotivo per cui uno vorrebbe farlo.

+0

Scusa se penso che altre informazioni come la domanda [qui] (http://stackoverflow.com/questions/5911068/facebook-graph-api-limit-doubt) dica "per token di accesso". Suppongo che intendessero token di accesso alle app. –

+0

Quindi, in generale, cosa voglio fare (per apportare rapidamente modifiche a centinaia di pagine Facebook) è impossibile? –

+0

Non è spam, quando ci sono molte persone che aggiornano molte pagine utilizzando la stessa app. Il problema di base è che non possiamo scalare. Ci sono più di 3 milioni di pagine Facebook, come prevedono che un'azienda salirà a 3 milioni con 600 chiamate API in 10 minuti – AGrunewald

2

In realtà è piuttosto semplice, devi solo chiedere un token di accesso per la PAGINA, non per l'utente.

$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)); 

La prima riga si arriva il token di accesso di tale utente, e il secondo il suo solo un esempio per l'utilizzo di multiquery, e ridurre le chiamate.

È possibile utilizzare un massimo di 50 domande in un multiquery

E se si vuole fare diverse cose con la tua pagina, è possibile utilizzare richiesta batch. Questo è un esempio per la pubblicazione di uno stato, è possibile aggiungere altro, fino a 50 richieste batch nella stessa chiamata.

$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; 

Spero che questo aiuti.

2

Come indicato da @Julio Popocatl, l'utilizzo di un token di accesso alla pagina (generato da un token utente di lunga durata) potrebbe essere una buona scelta.

Questi Pagina dei token di accesso una volta generati correttamente, essi saranno non scadono mai, quindi è almeno un meno di query è necessario eseguire.

Il limite di richieste API viene applicato a ogni richiesta, da utente, pagina, app, qualunque sia. Chiedono sempre qualcosa allo schema di Facebook, qualunque sia la fonte della richiesta.

Using batch requests is a good idea too, come sarebbe il recupero di più dati con una (o meno) richieste rispetto a rendere ogni richiesta singolarmente.

Problemi correlati