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.
På den här sidan
Fält
Åtgärden skicka HTTP-förfrågan innehåller följande fält.
Fält | Beskrivning |
---|---|
HTTP-metod | Metoden för HTTP-förfrågan som ska skickas. Åtgärden Skicka HTTP-förfrågan stöder följande metoder:
|
URL | URL för den server som HTTP-begäran skickas till. |
Rubriker | Nyckel- och värdeparet för HTTP-förfrågan. Flera nyckelvärdespar kan anges. |
Brödtext | Innehållet som ska skickas till servern. |
Vid klientfel (4XX-svar) | När Flow tar emot en svarskod som indikerar ett klientfel kommer Flow att:
|
Vid serverfel (5XX- eller 429-svar) | När en svarskod som indikerar ett serverfel tas emot gör Flow följande:
|
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.
HTTP-svarskod | Hur Flow hanterar svarskoden |
---|---|
2XX eller 3XX lyckas | Flow 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:
| Annan svarskod | Om 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:
Välj utlösaren för Produktstatus uppdaterad, som låter dig testa detta arbetsflöde genom att ändra status för en produkt.
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ärdettext/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.
- I fältet HTTP-metod anger du
Aktivera arbetsflödet.
Testa detta genom att ändra statusen för en produkt, till exempel från Utkast till Aktiv.
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:
- Välj utlösaren för Produktstatus uppdaterad, som låter dig testa detta arbetsflöde genom att ändra status för en produkt.
- 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ärdetapplication/json
. - I avsnittet Brödtext anger du exempel-JSON att returnera till arbetsflödet, till exempel: ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
- I fältet HTTP-metod anger du
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
}
}
- 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)