SDK PHP

Scaricalo da GitHub. Include esempi di utilizzo.

SDK PHP di CrowdHandler

SDK PHP per interagire con le API pubbliche e private di CrowdHandler. Funzionalità complete per la verifica e l'inserimento in coda degli utenti.

Creare un'istanza di un client API pubblico

$api = new CrowdHandler\PublicClient($yourPublicKey);

Creare un nuovo oggetto GateKeeper

dettagli della richiesta impliciti (PHP classico)

$gatekeeper = new CrowdHandler\GateKeeper($api);

La classe GateKeeper è un controller che consente di interagire con la richiesta dell'utente e con l'API CrowdHandler e di intraprendere le azioni appropriate.

utilizzando la richiesta PSR7

$request = new \Psr\Http\Message\ServerRequestInterface;
$gatekeeper = new CrowdHandler\GateKeeper($api, request);

Di default, GateKeeper controlla le variabili superglobali come url, ip, agent ecc. Tuttavia, se lo preferisci tu o se lo richiede il tuo framework, puoi passare una richiesta PSR.

Opzioni

Modalità debug

$gatekeeper->setDebug(true);

Registrerà alcune azioni nel log degli errori di PHP e ignorerà i reindirizzamenti, in modo che tu possa vedere cosa sta succedendo senza essere reindirizzato continuamente. Controlla $gatekeeper->getRedirectUrl() per vedere dove verrai reindirizzato.

Ignora gli URL

$gatekeeper->setIgnoreUrls($regexp);

Per impostazione predefinita, le risorse comuni (png, jpg, ecc.) saranno escluse dai controlli dell'API e verranno automaticamente promosse. Se lo desideri, puoi specificare una tua espressione regolare. Ciò sovrascriverà l'espressione regolare esistente, quindi dovrai includere le risorse se necessario.

Sala d'attesa per il failover

$gatekeeper->setSafetyNetSlug('yourslug');

Per impostazione predefinita, se una chiamata API fallisce o viene ricevuta una risposta non valida, verrai reindirizzato alla sala d'attesa generica di CrowdHandler fino a quando l'API non fornirà ulteriori informazioni. Se preferisci reindirizzare a una tua sala d'attesa generica nota in queste circostanze (consigliato), puoi impostare lo slug qui.

Segui la tua strada

$gatekeeper->setToken($_SESSION['token']);

Per impostazione predefinita, GateKeeper controllerà e imposterà i cookie per mantenere attiva la sessione dell'utente con CrowdHandler sul tuo sito. Se desideri gestire la sessione in altro modo, puoi impostare il token autonomamente.

Il rilevamento dell’IP non funziona correttamente? Configuralo tu stesso

$gatekeeper->setIP($_SERVER['X-MY-WEIRD-LOADBALANCER-FORWARDS-THE-REAL-IP-LIKE-THIS']);

Tracciare l’IP dell’utente dovrebbe essere semplice, ma in ambienti con bilanciamento del carico o di hosting cloud, a volte si ottiene l’IP del bilanciatore di carico anziché quello dell’utente. GateKeeper prova modelli comuni per rilevare l’IP, inclusi quelli tipici dei bilanciatori di carico, ma è possibile sovrascrivere ciò che rileva impostando esplicitamente i parametri se la propria configurazione è più particolare. È importante tracciare l’IP con precisione. Se lo stesso utente viene tracciato tramite due IP, potrebbe essere bloccato erroneamente oppure trovarsi contemporaneamente in uno stato di blocco e in uno di sblocco, a seconda che si trovi in fase di attesa o di transazione.

Verifica la richiesta corrente

$gatekeeper->checkRequest();

Questo è il cuore della classe. Esamina la richiesta dell'utente, si collega all'API e recupera un risultato che indica se all'utente debba essere concesso l'accesso o se debba essere indirizzato a una sala d'attesa.

Imposta il cookie

Automatico

$gatekeeper->setCookie();

Ora imposta il cookie in modo che l'utente trasmetta il proprio token ad ogni richiesta. Questo è importante: se il token non può essere verificato, ne verrà emesso uno nuovo e ciò potrebbe comportare che un utente promosso venga reindirizzato alla sala d'attesa.

Segui la tua strada

$_SESSION['ch-id'] = $gatekeeper->result->token;

Se non vuoi utilizzare il cookie standard, puoi gestire la cosa a modo tuo. Nota bene: sconsigliamo vivamente di utilizzare la sessione PHP per memorizzare il token, poiché in genere scade dopo 20 minuti. Un utente potrebbe rimanere in una sala d'attesa per ore e poi provare ad accedere a un URL del tuo sito in una nuova scheda, il che potrebbe comportare l'assegnazione di una nuova posizione in fondo alla coda. Per questo motivo, di solito è preferibile utilizzare una sessione o un cookie permanente.

Reindirizzare l'utente nel caso in cui debba attendere

Automatico

$gatekeeper->redirectIfNotPromoted()

Se questo utente dovesse trovarsi in attesa, verrà indirizzato alla sala d'attesa corretta. Non è necessario che tu effettui un controllo condizionale.

Fai da te

if (!$gatekeeper->result->promoted) {
    header('location: '.$gatekeeper->getRedirectUrl(), 302);
    exit;
}

Se vuoi effettuare un controllo condizionale, questo è il controllo che devi eseguire, ed ecco come puoi trovare l'URL a cui reindirizzarli.

Creare un'istanza di un client API privato

$api = new CrowdHandler\PrivateClient($yourPrivateKey);

Recupera un array di oggetti

Tutto

$rs = $api->rooms->get();

Con i parametri

$rs = $api->rooms->get(['domainID'=>'dom_y0urk3y']);

Iterare

foreach($rs as $room) print $room;

Prendi un oggetto

$room = $api->rooms->get('room_your1d');

Aggiornare un oggetto

$api->domains->put('dom_y0ur1d', ['rate'=>50, 'autotune'=>true]);

Pubblica un oggetto

$api->templates->post(['name'=>'Il mio modello', 'url'=>'https://mysite.com/wait.html']);

Elimina un oggetto

$api->groups->delete('grp_y0ur1d')