Skicka HTTP-förfrågan

Åtgärden Skicka HTTP-förfrågan ansluter ditt arbetsflöde till en webbserver eller URL och skickar HTTP-förfrågningar.

När Flow skickar din HTTP-förfrågan väntar den i maximalt 30 sekunder för en HTTP-svarskod. Om Flow inte har fått ett svar efter 30 sekunder stängs anslutningen till din app. Flow försöker skicka förfrågan igen senare.

Fält

Åtgärden skicka HTTP-förfrågan innehåller följande fält.

Fält som används i åtgärden Skicka HTTP-förfrågan.
FältBeskrivning
HTTP-metodMetoden för HTTP-förfrågan som ska skickas. Åtgärden Skicka HTTP-förfrågan stöder följande metoder:
  • - skickar en förfrågan om information från servern.
  • Radera - tar bort en resurs från servern.
  • Rubrik - hämtar HTTP-svarsrubrikerna för servern.
  • Alternativ - hämtar de alternativ och funktioner som stöds av servern.
  • Patch - uppdaterar delvis en resurs på servern.
  • Lägg till - uppdaterar en resurs på servern.
  • Posta - skapar eller ersätter en resurs på servern.
URLURL för den server som HTTP-begäran skickas till.
RubrikerNyckel- och värdeparet för HTTP-förfrågan. Flera nyckelvärdespar kan anges.
BrödtextInnehållet som ska skickas till servern.
Vid klientfel (4XX-svar)När Flow tar emot en svarskod som indikerar ett klientfel kommer Flow att:
  • Försöka igen – försöka igen i upp till 24 timmar tills en annan svarskod tas emot eller tiden går ut.
  • Misslyckas – misslyckas med arbetsflödeskörningen.
  • Ignorera – ignorera felet och fortsätta med arbetsflödet.
Vid serverfel (5XX- eller 429-svar)När en svarskod som indikerar ett serverfel tas emot gör Flow följande:
  • Försöka igen – försöka igen i upp till 24 timmar tills en annan svarskod tas emot eller tiden går ut.
  • Misslyckas – misslyckas med arbetsflödeskörningen.
  • Ignorera – ignorera felet och fortsätta med arbetsflödet.

Returnerade data

För att komma åt returnerade data i stegen som följer efter denna åtgärd använder du variabeln sendHttpRequest, som innehåller alla uppgifter i HTTP-svaret. Du kan även använda en Kör kod-åtgärd för att analysera body i svaret för användning i efterföljande arbetsflödessteg, till exempel i exemplet nedan.

Om åtgärden Skicka HTTP-förfrågan används flera gånger i ett enskilt arbetsflöde så läggs ett nummer till i variabelnamnet. Till exempel, i ett arbetsflöde som använder åtgärden Skicka HTTP-förfrågan två gånger, är den första variabeln för returnerade data sendHttpRequest och den andra variabeln är sendHttpRequest1. Namnet kan inte anpassas.

Svarskoder

Följande tabell visar hur flödet processar HTTP-svarskoden när den har fått ett svar.

Hur Flow behandlar HTTP-svarskoder.
HTTP-svarskodHur Flow hanterar svarskoden
2XX eller 3XX lyckasFlow markerar HTTP-förfrågan som lyckad och utför följande åtgärder i arbetsflödet.
4XX-fel,
5XX- och 429-fel
Beroende på hur åtgärden är konfigurerad kommer Flow att:
  • Försöka igen – försöka igen i upp till 24 timmar tills en annan svarskod tas emot eller tiden går ut.
  • Misslyckas – misslyckas med arbetsflödeskörningen.
  • Ignorera – ignorera felet och fortsätta med arbetsflödet.
Annan svarskodOm svaret returnerar en kod som inte beskrivs i den här tabellen, eller om nya försök att utföra åtgärder tar för lång tid, så markerar Flow HTTP-begäran som misslyckad, körningen av arbetsflödet misslyckas och inga efterföljande arbetsflödesåtgärder utförs.

Hemligheter

Hemligheter används för att lagra känslig information säkert för användning i åtgärden Skicka HTTP-förfrågan, till exempel åtkomsttoken eller lösenord. Hemligheter skapas och hanteras från Flow > sidan Inställningar. En hemlighet innehåller en handle, ett värde och en beskrivning. Referera till hemligheten som en Liquid-variabel (t.ex. {{secrets.handle}}) eller från alternativet Lägg till hemlighet när du konfigurerar URL:en, sidhuvudsvärdet eller brödtextfälten. Hemliga värden syns aldrig i Flow-gränssnittet och redigeras bort från körloggar för arbetsflöden.

Utlösare

Åtgärden skicka HTTP-förfrågan kan användas i alla arbetsflöden.

Exempel

Exempel 1: Skicka en HTTP-förfrågan till en extern tjänst

I det här exemplet använder du Flow för att skicka en HTTP-förfrågan till en extern tjänst.

Innan du börjar så konfigurerar du en webbtjänst som tar emot HTTP-förfrågningar och lagrar data för dessa förfrågningar för testning, till exempel Request Catcher. Var försiktig när du skickar känsliga data (till exempel lösenord eller API-nycklar) till en tredjepartstjänst.

Steg:

  1. Välj utlösaren för Produktstatus uppdaterad, som låter dig testa detta arbetsflöde genom att ändra status för en produkt.

  2. Lägg till en Skicka HTTP-förfrågan-åtgärd till ditt arbetsflöde och anslut den till utlösaren. Öppna sedan konfigurationspanelen genom att klicka på steget Skicka HTTP-förfrågan.

    • I fältet HTTP-metod anger du POST.
    • I URL-fältet anger du den URL som du vill testa mot, som till exempel https://yourFlowTest.requestcatcher.com/test.
    • I avsnittet Sidhuvuden, anger du ett sidhuvud med Nyckeln Content-Type och Värdet text/plain.
    • I avsnittet Brödtext anger du {{product.title}} och {{product.status}} för att skicka produktens titel och uppdaterade status från utlösaren.
  3. Aktivera arbetsflödet.

  4. Testa detta genom att ändra statusen för en produkt, till exempel från Utkast till Aktiv.

  5. Observera resultaten i den externa testtjänsten, som till exempel https://yourFlowTest.requestcatcher.com/ i det här exemplet.

Exempel 2: Använd Kör kod för att analysera ett HTTP-svar

I det här exemplet använder du Flow för att skicka en HTTP-begäran till en extern tjänst och en Kör kod-åtgärd för att analysera body i HTTP-svaret för användning i efterföljande arbetsflödessteg.

Innan du börjar så väljer du en webbtjänst som tar emot HTTP-förfrågningar och returnerar data, till exempel Postman Echo. Var försiktig när du skickar känsliga data (till exempel lösenord eller API-nycklar) till en tredjepartstjänst.

Steg:

  1. Välj utlösaren för Produktstatus uppdaterad, som låter dig testa detta arbetsflöde genom att ändra status för en produkt.
  2. Lägg till en Skicka HTTP-förfrågan-åtgärd till ditt arbetsflöde och anslut den till utlösaren. Öppna sedan konfigurationspanelen genom att klicka på steget Skicka HTTP-förfrågan.
    • I fältet HTTP-metod anger du POST.
    • I URL-fältet anger du den URL som du vill testa mot, som till exempel https://postman-echo.com/post.
    • I avsnittet Sidhuvuden, anger du ett sidhuvud med Nyckeln Content-Type och Värdet application/json.
    • I avsnittet Brödtext anger du exempel-JSON att returnera till arbetsflödet, till exempel: ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
3. Lägg till åtgärden **Kör kod** i ditt arbetsflöde och anslut den till åtgärden **Skicka HTTP-begäran**. Öppna sedan konfigurationspanelen genom att klicka på steget **Kör kod**.
      - I fältet **Definiera indata** inkluderar du `body` som returneras av `sendHTTPrequest`-objektet, till exempel:  ```
query{
sendHttpRequest {
  body
}
}
- I fältet **Definiera utdata**, som definieras i utdataschemat, till exempel:  ```

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

- I fältet **Skriv kod** analyserar du svaret med metoden `JSON.parse` och ser till att de data som returneras matchar den form och de typer som definierats i utdataschemat, till exempel:  ```
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. Lägg till en åtgärd Logga utdata i arbetsflödet och anslut den till åtgärden Kör kod. Öppna sedan konfigurationspanelen genom att klicka på steget Kör kod.
    • I fältet Utdata inkluderar du variablerna som returneras av steget Kör kod, till exempel: ``` Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
5. Aktivera arbetsflödet.
6. Testa detta genom att ändra statusen för en produkt, till exempel från **Utkast** till **Aktiv**.
7. Observera den resulterande körningen från sidan **[Flow/senaste körningar](https://admin.shopify.com/apps/flow/activity)** och notera att värdena i steget **Loggutdata** matchar de värden som returneras från utdata för **Skicka HTTP-begäran**.

## Mallar {#templates}

### Avisera din distributionsleverantör om kommande ordrar

Skicka en HTTP-begäran till din distributionsleverantör när ordrar taggas med "Warehouse" i Order Tagger [Visa mall](https://shopify.com/admin/apps/flow/editor/templates/e99f15ae-454b-443b-b6c7-7dc4b2afc129)

### Skicka nya ordrar till Airtable

Skicka ordrar till Airtable när en order har skapats. [Visa mall](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7)

### Skicka alla befintliga och nya produkter till Airtable

Hitta produkter var 10:e minut, som inte har skickats till Airtable (via tagg) och skicka dem till Airtable. [Visa mall](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82)

### Uppdatera produkter i batcher från produktdata som lagras i Airtable

Uppdatera produkter i batcher från produktdata som lagras i Airtable. [Visa mall](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b)

### Meddela kunderna om presentkort som löper ut med SendGrid

Hämta alla presentkort som löper ut om 7 dagar varje dag och skicka e-postmeddelanden om detta till kunderna med SendGrid. [Visa mall](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e)

### Skicka e-postmeddelande med SendGrid när en kund lägger en order för en anpassad artikel

Skicka ett transaktionsmeddelande via e-post med SendGrid när en kund lägger en order för en anpassad artikel. [Visa mall](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb)
Hittar du inte de svar du letar efter? Vi finns här för att hjälpa till!