Salve a tutti, volevo esporre il mio problema.
Ho fatto un piccolo giochino per Facebook e ogni volta che un utente supera il livello l'app del gioco scrive sulla bacheca di quest'ultimo.
Il problema sorge quando devo gestire gli errori di Facebook. Mi sono reso conto che Facebook gestisce diverse tipologie di errori con lo stesso numero. Faccio un esempio:
Per l'errore numero #200 Facebook attribuisce sia il ban dell'applicazione, sia la non autorizzazione dell'utente a scrivere sulla propria bacheca.
Ovviamente in base al tipo di errore dovrò avere un comportamento diverso, quindi non posso gestire l'errore in base al numero ma in base al messaggio che le api di Facebook restituiscono.
Per esempio:
per il messaggio "Applicazione non autorizzata" che corrisponde al numero errore 200
per il messaggio "Applicazione sospesa" che corrisponde al numero errore 400
Comportamento => elimino l'applicazione
per il messaggio "Utente bannato" che corrisponde al numero errore 100
per il messaggio "Utente non esistente" che corrisponde al numero errore 200
Comportamento => elimino l'utente
Dopo questo preambolo, la soluzione che avevo pensato era la seguente:
Aggiungere in un primo array tutti i messaggi di errore che voglio gestire per il comportamento che prevede l'eliminazione dell'app:
Aggiungere in un secondo array tutti i messaggi di errore che voglio gestire per il comportamento che prevede l'eliminazione dell'utente:
Confrontare adesso i due array $errori_da_gestire con l'errore che viene restituito da Facebook "$stringa_Facebook":
Adesso, dov'è il problema?
Il problema è che questo script si trova all'interno di un cronjob, c'è un modo per alleggerire la cosa e rendere l'esecuzione più rapida?
Anche perchè dovrei fare svariati elseif questo era solo un esempio e ne è presente uno solo, ma nel mio caso dovrebbero essere una decina
Ho fatto un piccolo giochino per Facebook e ogni volta che un utente supera il livello l'app del gioco scrive sulla bacheca di quest'ultimo.
Il problema sorge quando devo gestire gli errori di Facebook. Mi sono reso conto che Facebook gestisce diverse tipologie di errori con lo stesso numero. Faccio un esempio:
Per l'errore numero #200 Facebook attribuisce sia il ban dell'applicazione, sia la non autorizzazione dell'utente a scrivere sulla propria bacheca.
Ovviamente in base al tipo di errore dovrò avere un comportamento diverso, quindi non posso gestire l'errore in base al numero ma in base al messaggio che le api di Facebook restituiscono.
Per esempio:
per il messaggio "Applicazione non autorizzata" che corrisponde al numero errore 200
per il messaggio "Applicazione sospesa" che corrisponde al numero errore 400
Comportamento => elimino l'applicazione
per il messaggio "Utente bannato" che corrisponde al numero errore 100
per il messaggio "Utente non esistente" che corrisponde al numero errore 200
Comportamento => elimino l'utente
Dopo questo preambolo, la soluzione che avevo pensato era la seguente:
Aggiungere in un primo array tutti i messaggi di errore che voglio gestire per il comportamento che prevede l'eliminazione dell'app:
PHP:
$errori_da_gestire_ELIMINA_APP=array("errore A", "errore B","errore C");
Aggiungere in un secondo array tutti i messaggi di errore che voglio gestire per il comportamento che prevede l'eliminazione dell'utente:
PHP:
$errori_da_gestire_ELIMINA_USER=array("errore D", "errore E","errore F");
Confrontare adesso i due array $errori_da_gestire con l'errore che viene restituito da Facebook "$stringa_Facebook":
PHP:
if (in_array($stringa_Facebook, $errori_da_gestire_ELIMINA_APP))
{
echo "elemento trovato: funzione per eliminare l'app";
}elseif (in_array($stringa_Facebook, $errori_da_gestire_ELIMINA_USER))
{
echo "elemento trovato: funzione per eliminare l'user";
}
Adesso, dov'è il problema?
Il problema è che questo script si trova all'interno di un cronjob, c'è un modo per alleggerire la cosa e rendere l'esecuzione più rapida?
Anche perchè dovrei fare svariati elseif questo era solo un esempio e ne è presente uno solo, ma nel mio caso dovrebbero essere una decina
Ultima modifica: