Send HTTP-forespørsel

Handlingen Send HTTP-forespørsel kobler arbeidsflyten til en webserver eller URL-adresse, og sender HTTP-forespørsler.

Når Flow sender HTTP-forespørselen, venter den i maksimalt 30 sekunder på en HTTP-svarkode. Hvis Flow ikke har mottatt et svar etter 30 sekunder, avsluttes tilkoblingen til appen. Forespørselen prøves på nytt senere.

Felt

Handlingen Send HTTP-forespørsel inneholder følgende felter.

Felter som brukes i handlingen Send HTTP-forespørsel.
FeltBeskrivelse
HTTP-metodeMetoden for HTTP-forespørselen som skal sendes. Handlingen Send HTTP-forespørsel støtter følgende metoder:
  • – sender en forespørsel om informasjon fra serveren.
  • Slett – fjerner en ressurs fra serveren.
  • Hode – henter HTTP-svarhoder på serveren.
  • Alternativer – henter alternativene og funksjonene som støttes av serveren.
  • Oppdatering – oppdaterer delvis en ressurs på serveren.
  • Putt – oppdaterer en ressurs på serveren.
  • Post – oppretter eller erstatter en ressurs på serveren.
URL-adresseURL-adressen til serveren HTTP-forespørselen sendes til.
ToppteksterNøkkel- og verdiparet for HTTP-forespørselen. Flere nøkkelverdipar kan angis.
BrødtekstInnholdet som skal sendes til serveren.
Feil på klient (4XX-svar)Når Flow mottar en svarkode som indikerer en serverfeil, vil den:
  • Prøv på nytt – Prøv på nytt i opptil 24 timer til du mottar en annen svarkode eller det oppstår tidsavbrudd.
  • Mislykkes – Kjøringen av arbeidsflyten mislykkes.
  • Ignorer – Ignorer feilen og fortsett arbeidsflyten.
Feil på server (5XX- eller 429-svar)Når Flow mottar en svarkode som indikerer en serverfeil, gir det følgende beskjeder:
  • Prøv på nytt – Prøv på nytt i opptil 24 timer til du mottar en annen svarkode eller det oppstår tidsavbrudd.
  • Mislykkes – Kjøringen av arbeidsflyten mislykkes.
  • Ignorer – Ignorer feilen og fortsett arbeidsflyten.

Returnerte data

For å få tilgang til de returnerte dataene i trinnene som følger denne handlingen, bruk variabelen kalt sendHttpRequest, som inkluderer alle detaljene i HTTP-svaret. Du kan eventuelt bruke en Kjør kode-handling for å analysere body av svaret for bruk i påfølgende arbeidsflyttrinn, som i eksemplet nedenfor.

Hvis en Send HTTP-forespørsel-handling brukes flere ganger i én arbeidsflyt, legges et tall til variabelnavnet. Eksempel: I en arbeidsflyt som bruker handlingen Send HTTP-forespørsel to ganger er den første variabelen for returnerte data sendHttpRequest og den andre sendHttpRequest1. Dette navnet kan ikke tilpasses.

Svarkoder

Den følgende tabellen beskriver hvordan Flow behandler HTTP-responskoden når den mottar et svar.

Slik behandler Flow HTTP-svarkoder.
HTTP-svarkodeSlik behandler Flow svarkoden
2XX eller 3XX SuksessFlow markerer HTTP-forespørselen som vellykket, og utfører påfølgende handlinger i arbeidsflyten.
4XX-feil,
5XX- og 429-feil
Avhengig av hvordan handlingen er konfigurert, vil Flow:
  • Prøv på nytt – Prøv på nytt i opptil 24 timer til du mottar en annen svarkode eller det oppstår tidsavbrudd.
  • Mislykkes – Kjøringen av arbeidsflyten mislykkes.
  • Ignorer – Ignorer feilen og fortsett arbeidsflyten.
Annen svarkodeHvis svaret returnerer en kode som ikke er beskrevet i denne tabellen, eller det får tidsavbrudd når handlinger prøves på nytt, markerer Flow HTTP-forespørselen som mislykket, kjøringen av arbeidsflyten mislykkes og ikke utfører påfølgende arbeidsflythandlinger.

Hemmeligheter

Hemmeligheter brukes til å lagre sensitiv informasjon på en sikker måte for bruk i handlingen Send HTTP-forespørsel, for eksempel tilgangstokener eller passord. Hemmeligheter opprettes og administreres fra Flow > Innstillinger-siden. En hemmelighet inneholder et referansenummer, en verdi og en beskrivelse. Referer til hemmeligheten som en Liquid-variabel (for eksempel {{secrets.handle}}) eller fra alternativet Legg til hemmelighet når du konfigurerer feltene URL, Header-verdi eller Body. Hemmelige verdier er aldri synlige i Flow-grensesnittet og redigeres bort fra arbeidsflytens kjørelogger.

Utløsere

Handlingen Send HTTP-forespørsel kan brukes i alle arbeidsflyter.

Eksempler

Eksempel 1: Send en HTTP-forespørsel til en ekstern tjeneste

I dette eksempelet kan du bruke Flow for å sende en HTTP-forespørsel til en ekstern tjeneste.

Før du begynner må du konfigurere en webtjeneste som mottar HTTP-forespørsler og lagrer dataene fra disse forespørslene for testing, for eksempel Request Catcher. Husk at du må være forsiktig når du sender sensitive data (for eksempel passord eller API-nøkler) til en tredjepartstjeneste.

Trinn:

  1. Velg utløseren Oppdatert produktstatus, som lar deg teste arbeidsflyten ved å endre statusen for et produkt.

  2. Legg til Send HTTP-forespørsel i arbeidsflyten og koble den til utløseren. Deretter åpner du konfigurasjonspanelet ved å klikke på trinnet Send HTTP-forespørsel.

    • Skriv inn POST i feltet HTTP-metode.
    • Skriv URL-adressen det skal testes mot i feltet URL, som for eksempel https://yourFlowTest.requestcatcher.com/test.
    • Skriv inn en overskrift med Key Content-Type og Value text/plain i seksjonen Overskrifter.
    • I seksjonen Innhold, kan du skrive inn {{product.title}} og {{product.status}} for å sende tittelen og produktets oppdaterte status fra utløseren.
  3. Aktiver arbeidsflyten.

  4. Test det ved å endre statusen på et produkt, for eksempel fra Utkast til Aktiv.

  5. Se resultatene i den eksterne testtjenesten, for eksempel https://yourFlowTest.requestcatcher.com/ i dette eksempelet.

Eksempel 2: Bruk Kjør kode for å analysere et HTTP-svar

I dette eksemplet bruker du Flow til å sende en HTTP-forespørsel til en ekstern tjeneste og en Kjør kode-handling for å analysere body av HTTP-svaret for bruk i påfølgende arbeidsflyttrinn.

Før du begynner må du velge en webtjeneste som mottar HTTP-forespørsler og returnerer data, for eksempel Postman Echo. Husk at du må være forsiktig når du sender sensitive data (for eksempel passord eller API-nøkler) til en tredjepartstjeneste.

Trinn:

  1. Velg utløseren Oppdatert produktstatus, som lar deg teste arbeidsflyten ved å endre statusen for et produkt.
  2. Legg til Send HTTP-forespørsel i arbeidsflyten og koble den til utløseren. Deretter åpner du konfigurasjonspanelet ved å klikke på trinnet Send HTTP-forespørsel.
    • Skriv inn POST i feltet HTTP-metode.
    • Skriv URL-adressen det skal testes mot i feltet URL, som for eksempel https://postman-echo.com/post.
    • Skriv inn en overskrift med Key Content-Type og Value application/json i seksjonen Overskrifter.
    • I Brødtekst-delen skriver du inn eksempel-JSON-en for å gå tilbake til arbeidsflyten, for eksempel: ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
3. Legg til en **Kjør kode**-handling i arbeidsflyten din og koble den til **Send HTTP-forespørsel**-handlingen. Åpne deretter konfigurasjonspanelet ved å klikke på trinnet **Kjør kode**.
      - I feltet **Definer inputs** inkluderer du `body` returnert av `sendHTTPrequest`-objektet, for eksempel:  ```
query{
sendHttpRequest {
  body
}
}
- I feltet **Definer utganger**, definert i utgangsskjemaet, for eksempel:  ```

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

- I feltet **Skriv kode** analyserer du svaret ved hjelp av `JSON.parse`-metoden og sørger for at dataene du returnerer samsvarer med formen og typene som er definert i utdataskjemaet, for eksempel:  ```
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. Legg til en Logg utdata-handling i arbeidsflyten din og koble den til Kjør kode-handlingen. Deretter åpner du konfigurasjonspanelet ved å klikke på trinnet Kjør kode.
    • I feltet Output inkluderer du variablene som returneres av Kjør kode-trinnet, for eksempel: ``` Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
5. Aktiver arbeidsflyten.
6. Test det ved å endre statusen på et produkt, for eksempel fra **Utkast** til **Aktiv**.
7. Observer den resulterende kjøringen fra siden **[Flow / Nylige kjøringer](https://admin.shopify.com/apps/flow/activity)** og merk at verdiene i trinnet **Loggutdata** samsvarer med verdiene som returneres fra utdataene **Send HTTP-forespørsel**.

## Maler {#templates}

### Varsle oppfyllingsleverandøren om kommende bestillinger

Send en HTTP-forespørsel til oppfyllingsleverandøren når bestillinger tagges med «Warehouse» i Order Tagger. [Vis mal](https://shopify.com/admin/apps/flow/editor/templates/e99f15ae-454b-443b-b6c7-7dc4b2afc129)

### Send nye bestillinger til Airtable

Send bestillinger til Airtable når en bestilling opprettes. [Vis mal](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7)

### Send alle eksisterende og nye produkter til Airtable

Hvert 10. minutt kan du finne produkter som ikke har blitt sendt til Airtable (med tagg) og sende dem til Airtable. [Vis mal](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82)

### Oppdater produkter i partier fra produktdata lagres i Airtable

Oppdaterer produkter i partier fra produktdata som er lagret i Airtable. [Vis mal](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b)

### Varsle kunder om utløpende gavekort ved hjelp av SendGrid

Hver dag kan du hente alle gavekort som utløper om 7 dager, for å sende en e-post til kunder via SendGrid. [Vis mal](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e)

### Send e-post med SendGrid når kunder bestiller en tilpasset vare

Send en transaksjons-e-post med SendGrid når en kunde legger inn en ordre for en tilpasset vare. [Vis mal](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb)
Finner du ikke svarene du leter etter? Vi er her for å hjelpe deg.