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.
Felt | Beskrivelse |
---|---|
HTTP-metode | Metoden for HTTP-forespørselen som skal sendes. Handlingen Send HTTP-forespørsel støtter følgende metoder:
|
URL-adresse | URL-adressen til serveren HTTP-forespørselen sendes til. |
Topptekster | Nøkkel- og verdiparet for HTTP-forespørselen. Flere nøkkelverdipar kan angis. |
Brødtekst | Innholdet som skal sendes til serveren. |
Feil på klient (4XX-svar) | Når Flow mottar en svarkode som indikerer en serverfeil, vil den:
|
Feil på server (5XX- eller 429-svar) | Når Flow mottar en svarkode som indikerer en serverfeil, gir det følgende beskjeder:
|
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.
HTTP-svarkode | Slik behandler Flow svarkoden |
---|---|
2XX eller 3XX Suksess | Flow 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:
| Annen svarkode | Hvis 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:
Velg utløseren Oppdatert produktstatus, som lar deg teste arbeidsflyten ved å endre statusen for et produkt.
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 Valuetext/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.
- Skriv inn
Aktiver arbeidsflyten.
Test det ved å endre statusen på et produkt, for eksempel fra Utkast til Aktiv.
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:
- Velg utløseren Oppdatert produktstatus, som lar deg teste arbeidsflyten ved å endre statusen for et produkt.
- 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 Valueapplication/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}}" }
- Skriv inn
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
}
}
- 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)