Come si esportano i dati dei contatti utilizzando l'API?




Ci possono essere momenti in cui è necessario esportare i dati di contatto dall'esterno della nostra applicazione. Forse vuoi eseguire il backup dei tuoi dati o devi analizzare ogni contatto nel tuo account.


È possibile esportare rapidamente tutti i contatti in un file CSV che può essere facilmente importato in un foglio di calcolo o leggere attraverso un linguaggio di programmazione.


È inoltre possibile creare un webhook che invierà automaticamente i dati all'applicazione ogni volta che viene aggiunto o aggiornato un nuovo contatto.






Nonostante queste due funzionalità, potrebbero esserci ancora momenti in cui l'applicazione deve accedere ai dati su richiesta. We'll vi mostriamo come farlo utilizzando PHP.


Configurare innanzitutto la connessione API dallo script:


define("ACTIVECAMPAIGN_URL", "https://ACCOUNT.api-us1.com");
define("ACTIVECAMPAIGN_API_KEY", "0c3b245df4785... 005d2d3d7e1e386f");
require_once("activecampaign-api-php/includes/ActiveCampaign.class.php");
$ac : nuovo ActiveCampaign(ACTIVECAMPAIGN_URL, ACTIVECAMPAIGN_API_KEY);

Successivamente, creiamo una funzione che gestisce la richiesta API e aggiunge ogni contatto a una matrice globale. La funzione accetta un numero di pagina, nonché un ID elenco facoltativo 's (se si desidera richiedere contatti solo da determinati elenchi) e restituisce il numero totale di contatti trovati per la pagina richiesta.


$GLOBALS["contacts"] - array(); Contiene tutti i contatti.

funzione run($page, $listids 0)

Metodo API.
$request : "contatto/elenco";

Controllare il filtro elenco. Se nessuno, richiedi tutti i contatti.
if ($listids)
$request . . . . . . . . . . . . . . . . . . . . . . . $listids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Altro
$request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Fai richiesta.
$request . . . . . . . . . . . . . . . $page per_page sort_direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
$response: $GLOBALS["ac"]-[>]api($request);

Contatore interno.
$count 0;

Se la richiesta viene eseguita correttamente.
if ((int)$response-[>]esito positivo)

Scorrere ogni elemento.
foreach ($response $key di [>] $value)

Se è presente un elemento di posta elettronica, sappiamo che si tratta di un contatto.
if (isset($value-[>]email))

$count; Incrementare il contatore interno.

Archiviare il contatto nell'array globale.
if (!isset($GLOBALS["contacts"][$value-[>]id]))
$GLOBALS["contacts"][$value-[>]id] - $value;
}

}

}

}
else :

Richiesta non riuscita. Output del motivo.
echo $response-[>]errore;

}

restituire $count;

}

Come si può vedere sopra (evidenziato), aggiungiamo ogni contatto a una matrice globale ($contacts). Di seguito è riportato un record di contatto di esempio:


Oggetto stdClass
(
[id] -[>] 29564
[subscriberid] -[>] 29564
[cdate] -[>] 2012-12-14 09:01:00
[sdate] -[>] 2012-12-14 09:01:00
[first_name] -[>] Mike
[last_name] -[>] Smith
[email] - [>] test@test.com
[last_list] - [>] Lista Ricompense
[avatar_url] [>] https://test.api-us1.com/gravatar.php?test@test h
)

È inoltre possibile limitare i risultati a 100 per pagina. Questo è l'importo massimo che puoi ricevere per ogni pagina. Per richiedere le pagine successive, aggiungiamo altro codice:


$page_start : 1; Pagina da cui iniziare.
$page_end : 1; La pagina in cui terminare.
$page_loop : 0;
$listids 9; Qualsiasi filtro elenco (utilizzare il formato separato da virgole per più di uno: 1,2)

while ((($page_start - $page_loop) < $page;
$page_current - $page_start - $page_loop;
$count : run($page_current, $listids);
$page_loop;
sonno(3);
}

Il ciclo precedente recupererà automaticamente la pagina successiva di contatti fino a raggiungere l'ultima pagina specificata. Puoi facilmente trovare la tua ultima pagina dividendo il numero di contatti totali nel tuo account con 100. Ad esempio, se si dispone di contatti di 1.000 dollari, è necessario circa 10 pages per recuperarli tutti.


$page_start : 1; Pagina da cui iniziare.
$page_end : 10; La pagina in cui terminare.
...

È inoltre possibile modificare il ciclo in modo da esaminare solo il numero totale restituito ($count):


mentre ($count 100 dollari) ...

In questo modo si recupera la pagina successiva solo se la pagina corrente ha la quantità massima restituita. Se la pagina corrente è minore della quantità massima, si sa che è l'ultima pagina. Abbiamo trovato questo approccio un po 'meno affidabile e meno flessibile rispetto al nostro esempio iniziale, ma sta a voi come si desidera gestirlo.






Questo articolo ti è stato utile?
Utenti che ritengono sia utile: 0 su 2

Have more questions? Submit a request

Provalo gratis