Blog

Come integrare un modulo di contatto WordPress CF7 in Genropy con le API REST

Come integrare un modulo di contatto Wordpress CF7 in Genropy con le API REST

Molto spesso può capitare di voler integrare un applicativo Genropy con delle fonti di dati esterni (siti web, altri applicativi, fogli di calcolo). Una delle possibili necessità potrebbe essere quella di raccogliere i dati da un sito WordPress: può essere il caso di una generica richiesta di informazioni da un modulo di contatto (CRM), dell’iscrizione a una newsletter, o ancora dell’iscrizione al sito, dell’invio dei dati di un ordine al software di fatturazione.

Tutti questi tipi di richiesta possono essere gestiti in vari modi, il più semplice dei quali è offerto dalle API REST di Genropy, ovvero uno dei sistemi di scambio di informazioni tramite request (GET/POST) tra i più diffusi in ambito web e software.

Uno dei casi probabilmente più diffusi potrebbe essere quello dell’integrazione di un modulo di contatto realizzato con il plugin più diffuso per questa necessità in WordPress, Contact Form 7. Tramite CF7 potremmo infatti voler inviare all’applicativo dei semplici dati di richiesta, dei dati anagrafici, dei dati per un appuntamento, l’iscrizione a una newsletter, e così via.

Vediamo quindi come sfruttare le API REST di Genropy per soddisfare questo tipo di esigenza.


Impostare CF7 per l’invio dei dati a Genropy

Il primo passo è impostare Contact Form 7 per l’invio dei dati a Genropy. Per fare questo è necessario utilizzare un plugin come Contact form 7 TO API + Basic Auth. Si noti che il plugin segnalato non è l’unico che può svolgere questo compito, ma solo una delle varie possibilità.

Per i dettagli sulle modalità di configurazione del plugin rimandiamo alla sezione dedicata sulla nostra documentazione.

Impostare un webhook in Genropy

Il secondo passo è quello di impostare un webhook in Genropy, ovvero una webpage che permetta di ricevere dei parametri da sistemi esterni ed effettuare le opportune chiamate al database.

Per fare questo è sufficiente creare un file .py con la nostra webpage, importare il component BaseRpc, e definire un public_method a piacere con i parametri inviati da CF7:

class GnrCustomWebPage(object): 
      py_requires='gnrcomponents/externalcall:BaseRpc'
      
      @public_method 
      def newMessage(self, email=None, name=None, surname=None, message=None, **kwargs):
           pass

Si noti che il nome del metodo determinerà quella che sarà la Base Url da indicare al plugin CF7, nel nostro caso:

http://localhost:8080/sandbox/cf7/newMessage

Avremo a questo punto a disposizione tutto ciò che serve per effettuare le operazioni sui dati raccolti, come ad esempio inserire una nuova anagrafica, inserire i dati di un ordine o una fattura, iscrivere un utente alla newsletter, e così via.

Nel nostro esempio, ci limitiamo a creare un nuovo record con i dati della richiesta ricevuta:

contatto_tbl = self.db.table('sandbox.contatto') 
nuovo_contatto = contatto_tbl.newrecord(email=email, name=name, surname=surname, message=message) 
contatto_tbl.insert(nuovo_contatto) 
self.db.commit()

Utilizzo delle REST API di Genropy

Si noti che l’esempio presentato è solo una delle numerose modalità applicative delle REST API di Genropy, che si possono prestare a qualsivoglia tipo di comunicazione con l’esterno.

Lo stesso strumento può essere utilizzato per integrare ordini e gestione magazzino di Woocomerce, il plugin e-commerce di WordPress, o gestire iscrizione e disiscrizione alla newsletter, o ancora inviare notifiche, o gestire procedure di autenticazione dell’utente.

Gli usi sono i più disparati, e in questa sede ci siamo limitati all’uso in uno solo degli ambiti di applicazione. Non escludiamo quindi trattazioni di altre casistiche in articoli futuri. Hai suggerimenti/curiosità su qualche ambito in particolare? Scrivici su AskGenropy!