Azione Invia richiesta HTTP

L'azione Send HTTP request (Invia richiesta HTTP) collega il flusso di lavoro a un server web o a un URL e invia richieste HTTP.

Inviata la richiesta HTTP, Flow attende fino a un massimo di 30 secondi un codice di risposta HTTP. Se dopo 30 secondi non ha ricevuto risposta, Flow chiude la connessione alla tua app e successivamente invia di nuovo la richiesta.

Campi

L'azione Invia richiesta HTTP contiene i campi seguenti.

Campi utilizzati nell'azione Invia richiesta HTTP.
CampoDescrizione
HTTP method (Metodo HTTP)Il metodo di richiesta HTTP che deve essere inviato. L'azione Send HTTP request (Invia richiesta HTTP) supporta i metodi seguenti:
  • Get: invia una richiesta per ricevere informazioni dal server.
  • Delete: rimuove una risorsa dal server.
  • Head: recupera le intestazioni della risposta HTTP del server.
  • Options: recupera le opzioni e le funzionalità supportate dal server.
  • Patch: aggiorna parzialmente una risorsa sul server.
  • Put: aggiorna una risorsa sul server.
  • Post: crea o sostituisce una risorsa sul server.
URLL'URL del server a cui viene inviata la richiesta HTTP.
Headers (Intestazioni)La coppia di chiave e valore della richiesta HTTP. È possibile inserire più coppie chiave-valore.
Body (Testo)Il contenuto che deve essere inviato al server.
In caso di errore del client (risposta 4XX)Quando ricevi un codice di risposta che indica un errore del client, Flow esegue queste azioni:
  • Riprova - Riprova per un massimo di 24 ore finché non ricevi un codice di risposta diverso o non scade il tempo.
  • Non riuscito - L'esecuzione del flusso di lavoro non riesce.
  • Ignora - Ignora l'errore e continua l'esecuzione del flusso di lavoro.
In caso di errore del server (risposta 5XX o 429)Quando ricevi un codice di risposta che indica un errore del server, Flow esegue queste azioni:
  • Riprova - Riprova per un massimo di 24 ore finché non ricevi un codice di risposta diverso o non scade il tempo.
  • Non riuscito - L'esecuzione del flusso di lavoro non riesce.
  • Ignora - Ignora l'errore e continua l'esecuzione del flusso di lavoro.

Dati restituiti

Per accedere ai dati restituiti nei passaggi successivi a questa azione, utilizza la variabile denominata sendHttpRequest, che include tutti i dettagli della risposta HTTP. Facoltativamente, utilizza un'azione Run code (Esegui codice) per analizzare il body della risposta da utilizzare nei passaggi successivi del flusso di lavoro, come nell'esempio seguente.

Se un'azione Send HTTP request (Invia richiesta HTTP) viene utilizzata più volte in un singolo flusso di lavoro, viene aggiunto un numero al nome della variabile. Ad esempio, in un flusso di lavoro che utilizza due volte l'azione Send HTTP request (Invia richiesta HTTP), la prima variabile dei dati restituiti è sendHttpRequest, mentre la seconda variabile è sendHttpRequest1. Questo nome non può essere personalizzato.

Codici di risposta

La tabella seguente descrive le modalità con cui Flow elabora il codice di risposta HTTP dopo aver ricevuto una risposta.

Modalità con cui Flow elabora i codici di risposta HTTP.
Codice di risposta HTTPModalità con cui Flow elabora il codice di risposta
2XX o 3XX SuccessLa richiesta HTTP viene contrassegnata come operazione riuscita da Flow, che esegue le azioni successive del flusso di lavoro.
Errori 4XX,
5XX e 429
A seconda di come è configurata l'azione, Flow esegue una di queste operazioni:
  • Riprova - Riprova per un massimo di 24 ore finché non ricevi un codice di risposta diverso o non scade il tempo.
  • Non riuscito - L'esecuzione del flusso di lavoro non riesce.
  • Ignora - Ignora l'errore e continua l'esecuzione del flusso di lavoro.
Altro codice di rispostaSe la risposta restituisce un codice non descritto in questa tabella o si verifica un timeout quando si ripetono le azioni, Flow contrassegna la richiesta HTTP come non riuscita, interrompe l'esecuzione del flusso di lavoro e non esegue le azioni successive.

Segreti

I segreti vengono utilizzati per archiviare in modo sicuro dati sensibili da utilizzare nell'azione Send HTTP request (Invia richiesta HTTP), ad esempio token di accesso o password. I segreti vengono creati e gestiti dalla pagina Flow > Impostazioni. Un segreto contiene un handle, un valore e una descrizione. Fai riferimento al segreto come a una variabile Liquid (ad es. {{secrets.handle}}) o dall'opzione Aggiungi segreto quando configuri i campi URL, valore header o corpo del testo. I valori segreti non sono mai visibili nell'interfaccia Flow e vengono oscurati dai registri di esecuzione del flusso di lavoro.

Trigger

L'azione Send HTTP request (Invia richiesta HTTP) può essere utilizzata in tutti i flussi di lavoro.

Esempi

Esempio 1 - Invio di una richiesta HTTP a un servizio esterno

In questo esempio, utilizza Flow per inviare una richiesta HTTP a un servizio esterno.

Prima di iniziare, configura un servizio web che riceva le richieste HTTP e archivi i dati di tali richieste per il test, ad esempio Request Catcher. Ricordati di prestare attenzione in caso di invio di dati sensibili (come password o chiavi API) a un servizio di terze parti.

Passaggi:

  1. Scegli il trigger Product status updated (Stato del prodotto aggiornato), che ti consente di testare questo flusso di lavoro modificando lo stato di un prodotto.

  2. Aggiungi un'azione Send HTTP Request (Invia richiesta HTTP) al tuo flusso di lavoro e collegala al trigger. Quindi apri il pannello di configurazione cliccando sul passaggio Send HTTP Request (Invia richiesta HTTP).

    • Nel campo HTTP Method (Metodo HTTP), inserisci POST.
    • Nel campo URL , inserisci l'URL da testare, ad esempio https://yourFlowTest.requestcatcher.com/test.
    • Nella sezione Headers (Header), inserisci un header con Key (Chiave) Content-Type e Value (Valore) text/plain.
    • Nella sezione Body (Corpo) inserisci {{product.title}} e {{product.status}} per inviare il titolo e la stato aggiornato del prodotto dal trigger.
  3. Attiva il flusso di lavoro.

  4. Provalo cambiando lo stato di un prodotto, ad esempio da Bozza ad Attivo.

  5. Visualizza i risultati nel servizio di test esterno, come https://yourFlowTest.requestcatcher.com/ in questo esempio.

Esempio 2 - Utilizzo di Run code (Esegui codice) per analizzare una risposta HTTP

In questo esempio, utilizza Flow per inviare una richiesta HTTP a un servizio esterno e un'azione Run code (Esegui codice) per analizzare body della risposta HTTP da utilizzare nei passaggi successivi del flusso di lavoro.

Prima di iniziare, scegli un servizio web che riceva le richieste HTTP e restituisca i dati, ad esempio Postman Echo. Ricordati di prestare attenzione in caso di invio di dati sensibili (come password o chiavi API) a un servizio di terze parti.

Passaggi:

  1. Scegli il trigger Product status updated (Stato del prodotto aggiornato), che ti consente di testare questo flusso di lavoro modificando lo stato di un prodotto.
  2. Aggiungi un'azione Send HTTP Request (Invia richiesta HTTP) al tuo flusso di lavoro e collegala al trigger. Quindi apri il pannello di configurazione cliccando sul passaggio Send HTTP Request (Invia richiesta HTTP).
    • Nel campo HTTP Method (Metodo HTTP), inserisci POST.
    • Nel campo URL , inserisci l'URL da testare, ad esempio https://postman-echo.com/post.
    • Nella sezione Headers (Header), inserisci un header con Key (Chiave) Content-Type e Value (Valore) application/json.
    • Nella sezione Body (Corpo) inserisci il JSON di esempio per tornare al flusso di lavoro, come: ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
3. Aggiungi un'azione **Run code** (Esegui codice) al tuo flusso di lavoro e collegala all'azione **Send HTTP request** (Invia richiesta HTTP). Apri quindi il pannello di configurazione cliccando sul passaggio **Run code** (Esegui codice).
      - Nel campo **Define inputs** (Definisci input) includi `body` restituito dall'oggetto `sendHTTPrequest`, ad esempio:  ```
query{
sendHttpRequest {
  body
}
}
- Nel campo **Define outputs** (Definisci output) definisci nello schema di output, ad esempio:  ```

type Output { productTitle: String! productStatus: String! }

- Nel campo **Write code** (Scrivi codice) analizza la risposta utilizzando il metodo `JSON.parse` e assicurati che i dati restituiti corrispondano alle forme e ai tipi definiti nello schema di output, ad esempio:  ```
export default function main(input) {
const body = JSON.parse(input.sendHttpRequest.body);
console.log("body is", body);
return {
  productTitle: body.data.productTitle,
  productStatus: body.data.productStatus
}
}
  1. Aggiungi un'azione Log output (Output registro) al tuo flusso di lavoro e collegala all'azione Run code (Esegui codice). Apri quindi il pannello di configurazione cliccando sul passaggio Run code (Esegui codice).
    • Nel campo Output includi le variabili restituite dal passaggio Run code (Esegui codice), ad esempio: ``` Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
5. Attiva il flusso di lavoro.
6. Provalo cambiando lo stato di un prodotto, ad esempio da **Bozza** ad **Attivo**.
7. Osserva l'esecuzione ottenuta nella pagina **[Flow / Esecuzioni recenti](https://admin.shopify.com/apps/flow/activity)** e nota che i valori nel passaggio **Output registro** corrispondono ai valori restituiti dall'output **Send HTTP request** (Invia richiesta HTTP).

## Modelli {#templates}

### Invio di una notifica al fornitore di servizi logistici sugli ordini in arrivo

Invia una richiesta HTTP al fornitore di servizi logistici quando agli ordini viene aggiunto il tag "Magazzino" in Order Tagger. [Visualizza modello](https://shopify.com/admin/apps/flow/editor/templates/e99f15ae-454b-443b-b6c7-7dc4b2afc129)

### Invio di nuovi ordini ad Airtable

Invia gli ordini ad Airtable quando viene creato un ordine. [Visualizza modello](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7)

### Invio di tutti i prodotti esistenti e nuovi ad Airtable

Ogni 10 minuti, trova i prodotti che non sono stati inviati ad Airtable (tramite tag) e inviali ad Airtable. [Visualizza modello](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82)

### Aggiornamento dei prodotti in batch dai dati dei prodotti archiviati in Airtable

Aggiorna i prodotti in batch dai dati dei prodotti archiviati in Airtable. [Visualizza modello](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b)

### Notifica ai clienti della scadenza dei buoni regalo con SendGrid

Ogni giorno, ricevi tutti i buoni regalo che scadono entro 7 giorni e invia un'email ai clienti utilizzando SendGrid. [Visualizza modello](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e)

### Invio di email con SendGrid quando i clienti effettuano un ordine per un articolo personalizzato

Invia un'email transazionale tramite SendGrid quando un cliente effettua un ordine per un articolo personalizzato. [Visualizza modello](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb)
Non trovi le risposte che stai cercando? Siamo qui per aiutarti.