Send HTTP-anmodning

Handlingen Send HTTP-anmodning knytter dit workflow til en webserver eller en webadresse og sender HTTP-anmodninger.

Når Flow har sendt din HTTP-anmodning, venter det maksimalt på en HTTP-svarkode i 30 sekunder. Hvis Flow ikke har modtaget et svar efter 30 sekunder, lukker det forbindelsen til din app. Senere prøver det at sende anmodningen igen.

Felter

Handlingen Send HTTP-anmodning indeholder følgende felter.

Felter, der bruges i handlingen “Send HTTP-anmodning”.
FeltBeskrivelse
HTTP-metodeMetoden til den HTTP-anmodning, der skal sendes. Handlingen Send HTTP-anmodning understøtter følgende metoder:
  • Get – Sender en anmodning om oplysninger fra serveren.
  • Delete – Fjerner en ressource fra serveren.
  • Head – Henter HTTP-svarheadere på serveren.
  • Options – Henter indstillingerne og funktionerne, der understøttes af serveren.
  • Patch – Delvis opdatering af en ressource på serveren.
  • Put – Opdaterer en ressource på serveren.
  • Post – Opretter eller erstatter en ressource på serveren.
WebadresseWebadressen for den server, HTTP-anmodningen sendes til.
SidehovederHTTP-anmodningens nøgle/værdi-par. Du kan angive flere nøgle/værdi-par.
BrødtekstDet indhold, der skal sendes til serveren.
Fejl i klienten (4XX-svar)Når der modtages en svarkode, der indikerer en klientfejl, vil Flow gøre følgende:
  • Prøve igen - prøve igen i op til 24 timer, indtil der modtages en anden svarkode, eller der opstår timeout.
  • Mislykkes - workflowet vil mislykkes.
  • Ignorere - ignorere fejlen og fortsætte workflowets kørsel.
Fejl på serveren (5XX- eller 429-svar)Når der modtages en svarkode, der indikerer en serverfejl, vil Flow gøre følgende:
  • Prøve igen - prøve igen i op til 24 timer, indtil der modtages en anden svarkode, eller der opstår timeout.
  • Mislykkes - workflowet vil mislykkes.
  • Ignorere - ignorere fejlen og fortsætte workflowets kørsel.

Returnerede data

For at få adgang til de returnerede data i de trin, der følger efter denne handling, skal du bruge variablen med navnet sendHttpRequest, som indeholder alle detaljerne i HTTP-svaret. Brug eventuelt en Kør kode-handling til at parse body af svaret til brug i efterfølgende trin i workflowet, f.eks. i eksemplet nedenfor.

Hvis handlingen Send HTTP-anmodning bruges flere gange i et enkelt workflow, føjes der et tal til variabelnavnet. Den første variabel for returnerede data i et workflow, der bruger handlingen Send HTTP-anmodning to gange, er f.eks. sendHttpRequest, mens den anden variabel er sendHttpRequest1. Navnet kan ikke tilpasses.

Svarkoder

Nedenstående tabel beskriver, hvordan Flow behandler HTTP-svarkoden, når den modtager et svar.

Sådan behandler Flow HTTP-svarkoder.
HTTP-svarkodeSådan behandler Flow svarkoden
2XX eller 3XX SuccessFlow markerer HTTP-anmodningen som gennemført og udfører de efterfølgende handlinger i workflowet.
4XX-fejl,
5XX- og 429-fejl
Afhængigt af hvordan handlingen er konfigureret, vil Flow gøre følgende:
  • Prøve igen - prøve igen i op til 24 timer, indtil der modtages en anden svarkode, eller der opstår timeout.
  • Mislykkes - workflowet vil mislykkes.
  • Ignorere - ignorere fejlen og fortsætte workflowets kørsel.
Anden svarkodeHvis svaret returnerer en kode, der ikke er beskrevet i denne tabel, eller hvis det får timeout, når handlingerne forsøges igen, markerer Flow HTTP-anmodningen som mislykket, og workflowet mislykkes, og Flow udfører ikke efterfølgende handlinger i workflowet.

Hemmeligheder

Hemmeligheder bruges til sikkert at opbevare følsomme oplysninger til brug i handlingen Send HTTP-anmodning, f.eks. adgangstokens eller adgangskoder. Hemmeligheder oprettes og administreres fra siden Flow > Indstillinger. En hemmelighed indeholder et handle, en værdi og en beskrivelse. Referer til hemmeligheden som en Liquid-variabel (f.eks. {{secrets.handle}}) eller fra indstillingen Tilføj hemmelighed, når du konfigurerer webadressen, overskriftværdien eller brødtekstfelterne. Hemmelige værdier er aldrig synlige i Flow-grænsefladen og slettes fra workflowets kørselsfiler.

Udløsere

Handlingen Send HTTP-anmodning kan bruges i alle workflows.

Eksempler

Eksempel 1: Send en HTTP-anmodning til en ekstern tjeneste

I dette eksempel kan du bruge Flow til at sende en HTTP-anmodning til en ekstern tjeneste.

Før du går i gang, skal du konfigurere en webtjeneste, der modtager HTTP-anmodninger og gemmer dataene for disse anmodninger til testning, f.eks. Request Catcher. Husk at være forsigtig, når du sender følsomme data (som f.eks. adgangskoder eller API-nøgler) til en tredjepartstjeneste.

Trin:

  1. Vælg udløseren Produktstatus er opdateret. Dette giver dig mulighed for at teste dette workflow ved at ændre status for et produkt.

  2. Føj handlingen Send HTTP-anmodning til dit workflow, og knyt den til udløseren. Åbn derefter konfigurationspanelet ved at klikke på trinnet Send HTTP-anmodning.

    • I feltet HTTP-metode indtaster du POST.
    • I feltet Webadresse skal du angive den webadresse, der skal testes i forhold til, f.eks. https://yourFlowTest.requestcatcher.com/test.
    • I afsnittet Sidehoveder indtaster du endnu et sidehoved med en NøgleContent-Type og en Værditext/plain.
    • I sektionen Brødtekst skal du indtaste {{product.title}} og {{product.status}} for at sende titlen og produktets opdaterede status fra udløseren.
  3. Aktivér workflowet.

  4. Test det ved at ændre status på et produkt, f.eks. fra Kladde til Aktiv.

  5. Se resultaterne i den eksterne testtjeneste, f.eks. https://yourFlowTest.requestcatcher.com/ i dette eksempel.

Eksempel 2: Brug Kør-kode til at parse et HTTP-svar

I dette eksempel skal du bruge Flow til at sende en HTTP-anmodning til en ekstern tjeneste og en Kør kode-handling til at parse body af HTTP-svaret til brug i efterfølgende trin i workflowet.

Før du går i gang, skal du vælge en webtjeneste, der modtager HTTP-anmodninger og returnerer data, f.eks. Postman Echo. Husk at være forsigtig, når du sender følsomme data (som f.eks. adgangskoder eller API-nøgler) til en tredjepartstjeneste.

Trin:

  1. Vælg udløseren Produktstatus er opdateret. Dette giver dig mulighed for at teste dette workflow ved at ændre status for et produkt.
  2. Føj handlingen Send HTTP-anmodning til dit workflow, og knyt den til udløseren. Åbn derefter konfigurationspanelet ved at klikke på trinnet Send HTTP-anmodning.
    • I feltet HTTP-metode indtaster du POST.
    • I feltet Webadresse skal du angive den webadresse, der skal testes i forhold til, f.eks. https://postman-echo.com/post.
    • I afsnittet Sidehoveder indtaster du endnu et sidehoved med en NøgleContent-Type og en Værdiapplication/json.
    • I afsnittet Brødtekst skal du indtaste eksempel-JSON'en for at vende tilbage til workflowet, for eksempel: ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
3. Føj handlingen **Kør kode** til workflowet, og knyt den til handlingen **Send HTTP-anmodning**. Åbn derefter konfigurationspanelet ved at klikke på trinnet **Kør kode**.
      - I feltet **Definer inputs** skal du inkludere `body`, der returneres af `sendHTTPrequest`-objektet, såsom:  ```
query{
sendHttpRequest {
  body
}
}
- I feltet **Definer outputs** , som defineret i outputskemaet, såsom:  ```

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

- I feltet **Skriv kode** skal du parse svaret ved hjælp af metoden `JSON.parse` og sørge for, at de returnerede data matcher de former og typer, der er defineret i outputskemaet, 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. Føj handlingen Logfør output til workflowet, og knyt den til handlingen Kør kode. Åbn derefter konfigurationspanelet ved at klikke på trinnet Kør kode.
    • I feltet Output skal du inkludere de variabler, der returneres af trinnet Kør kode , såsom: ``` Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
5. Aktivér workflowet.
6. Test det ved at ændre status på et produkt, f.eks. fra **Kladde** til **Aktiv**.
7. Observer den resulterende kørsel fra siden **[Flow/Nylige kørsler](https://admin.shopify.com/apps/flow/activity)** , og kontrollér, at værdierne i trinnet **Logfør output** matcher de værdier, der returneres fra outputtet **Send HTTP-anmodning**.

## Skabeloner {#templates}

### Giv din klargøringsudbyder besked om kommende ordrer

Send en HTTP-anmodning til din klargøringsudbyder, når ordrer tagges med “Lager” i Order Tagger. [Se skabelon](https://shopify.com/admin/apps/flow/editor/templates/e99f15ae-454b-443b-b6c7-7dc4b2afc129)

### Send nye ordrer til Airtable

Send ordrer til Airtable, når en ordre er oprettet. [Se skabelon](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7)

### Send alle eksisterende og nye produkter til Airtable

Find produkter, der ikke er blevet sendt til Airtable (via tag), hvert 10. minut, og send dem til Airtable. [Se skabelon](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82)

### Opdater produkter i batches fra produktdata gemt i Airtable

Opdater produkter i batches fra produktdata, der er gemt i Airtable. [Se skabelon](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b)

### Giv kunder besked om udløbende gavekort ved hjælp af SendGrid

Hent hver dag alle gavekort, der udløber om 7 dage, og send mails til kunderne ved hjælp af SendGrid. [Se skabelon](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e)

### Send mail ved hjælp af SendGrid, når kunderne afgiver en ordre på en tilpasset vare

Send en transaktionsmail ved hjælp af SendGrid, når en kunde afgiver en ordre på en tilpasset vare. [Se skabelon](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb)
Kan du ikke finde de svar, du leder efter? Vi er her for at hjælpe.