ส่งคำขอ HTTP
การดำเนินการส่งคำขอ HTTPจะเชื่อมต่อขั้นตอนการทำงานของคุณกับเซิร์ฟเวอร์หรือ URL ของเว็บไซต์ และส่งคำขอ HTTP
หลังจาก Flow ส่งคำขอ HTTP ของคุณแล้ว ระบบจะรอให้แอปของคุณตอบกลับด้วยรหัสตอบกลับ HTTP เป็นเวลาไม่เกิน 30 วินาที ถ้าหาก Flow ไม่ได้รับการตอบกลับหลังจาก 30 วินาที ระบบจะทำการตัดการเชื่อมต่อกับแอปของคุณ หลังจากนั้น ระบบจะส่งคำขอใหม่อีกครั้ง
ช่อง
การดำเนินการส่งคำขอ HTTP มีช่องดังต่อไปนี้
ช่อง | คำอธิบาย |
---|---|
วิธีการของ HTTP | วิธีที่ใช้ส่งคำขอ HTTP การดำเนินการส่งคำขอ HTTP รองรับวิธีการต่อไปนี้
|
URL | URL ของเซิร์ฟเวอร์ที่มีการส่งคำขอ HTTP ไป |
ส่วนหัว | คู่คีย์และค่าสำหรับคำขอ HTTP สามารถป้อนคู่คีย์-ค่าได้หลายคู่ |
เนื้อหา | เนื้อหาที่จะส่งไปยังเซิร์ฟเวอร์ |
เกี่ยวกับข้อผิดพลาดของไคลเอนต์ (การตอบกลับ 4XX) | เมื่อได้รับรหัสการตอบกลับที่ระบุว่าไคลเอนต์เกิดข้อผิดพลาด Flow จะดำเนินการดังนี้
|
เกี่ยวกับข้อผิดพลาดของเซิร์ฟเวอร์ (การตอบกลับ 5XX หรือ 429) | เมื่อได้รับรหัสการตอบกลับที่ระบุว่าเซิร์ฟเวอร์เกิดข้อผิดพลาด Flow จะดำเนินการดังนี้
|
ข้อมูลที่ส่งคืน
หากต้องการเข้าถึงข้อมูลที่ส่งกลับในขั้นตอนหลังจากการดำเนินการนี้ ให้ใช้ตัวแปรที่มีชื่อว่า sendHttpRequest
ซึ่งจะรวมรายละเอียดทั้งหมดของการตอบกลับ HTTP ไว้ อีกทางเลือกหนึ่งคือใช้การดำเนินการเรียกใช้โค้ดเพื่อแยกวิเคราะห์ body
ของการตอบกลับเพื่อใช้ในขั้นตอนต่อๆ ไปของขั้นตอนการทำงาน เช่นในตัวอย่างด้านล่าง
หากมีการใช้การดำเนินการส่งคำขอ HTTP หลายครั้งในขั้นตอนการทำงานเดียว ระบบจะเพิ่มตัวเลขลงในชื่อตัวแปร ตัวอย่างเช่น ในขั้นตอนการทำงานที่ใช้การดำเนินการส่งคำขอ HTTP สองครั้ง ตัวแปรแรกสำหรับข้อมูลที่ส่งกลับคือ sendHttpRequest
และตัวแปรที่สองคือ sendHttpRequest1
ซึ่งคุณจะไม่สามารถปรับแต่งชื่อนี้ได้
รหัสการตอบกลับ
ตารางต่อไปนี้จะอธิบายว่า Flow ประมวลผลรหัสการตอบสนอง HTTPอย่างไรหลังจากได้รับการตอบสนอง
รหัสตอบกลับ HTTP | วิธีที่ Flow ประมวลผลรหัสตอบกลับ |
---|---|
ความสำเร็จ 2XX หรือ 3XX | Flow จะทำเครื่องหมายคำขอ HTTP ว่าสำเร็จและดำเนินการขั้นต่อไปในขั้นตอนการทำงาน |
ข้อผิดพลาด 4XX, ข้อผิดพลาด 5XX และ 429 | Flow จะดำเนินการต่อไปนี้โดยขึ้นอยู่กับวิธีกำหนดค่าการดำเนินการ
| รหัสตอบกลับอื่นๆ | หากการตอบกลับส่งกลับรหัสที่ไม่ได้อธิบายไว้ในตารางนี้ หรือหมดเวลาเมื่อลองดำเนินการซ้ำ Flow จะทำเครื่องหมายคำขอ HTTP ว่าล้มเหลว ล้มเหลวในการดำเนินขั้นตอนตอนการทำงาน และไม่ดำเนินการต่อไปในขั้นตอนการทำงาน |
ข้อมูลลับ
ข้อมูลลับจะใช้ในการจัดเก็บข้อมูลที่ละเอียดอ่อนไว้อย่างปลอดภัยเพื่อใช้ในการดำเนินการส่งคำขอ HTTP เช่นโทเค็นการเข้าถึงหรือรหัสผ่าน ข้อมูลลับจะถูกสร้างและจัดการจากหน้า Flow > การตั้งค่า โดยข้อมูลลับจะประกอบด้วยแฮนเดิล ค่า และคำอธิบาย คุณสามารถอ้างอิงข้อมูลลับเป็นตัวแปร Liquid (เช่น {{secrets.handle}}
) หรือจากตัวเลือกเพิ่มข้อมูลลับ เมื่อกำหนดค่า URL ค่า Header หรือช่องข้อมูลใน Body ค่าข้อมูลลับจะไม่ปรากฏในอินเทอร์เฟซ Flow และจะถูกซ่อนจากบันทึกการทำงานของขั้นตอนการทำงาน
ทริกเกอร์
การดำเนินการส่งคำขอ HTTP นั้นสามารถใช้ได้ในทุกขั้นตอนการทำงาน
ตัวอย่าง
ตัวอย่างที่ 1: ส่งคำขอ HTTP ไปยังบริการภายนอก
ในตัวอย่างนี้ ให้ใช้ Flow เพื่อส่งคำขอ HTTP ไปยังบริการภายนอก
ก่อนเริ่มดำเนินการ ให้กำหนดค่าบริการเว็บที่รับคำขอ HTTP และจัดเก็บข้อมูลคำขอเหล่านั้นเพื่อการทดสอบ เช่น Request Catcher โปรดใช้ความระมัดระวังเสมอเมื่อส่งข้อมูลที่ละเอียดอ่อน (เช่น รหัสผ่านหรือคีย์ API) ไปยังผู้ให้บริการภายนอก
ขั้นตอนมีดังนี้
เลือกทริกเกอร์ อัปเดตสถานะสินค้าแล้ว ซึ่งช่วยให้คุณสามารถทดสอบขั้นตอนการทำงานนี้ได้โดยการเปลี่ยนสถานะของสินค้า
เพิ่มการดำเนินการส่งคำขอ HTTP ลงในขั้นตอนการทำงานและเชื่อมต่อกับทริกเกอร์ จากนั้นเปิดแผงการกำหนดค่าโดยคลิกที่ขั้นตอนส่งคำขอ HTTP
- ในช่องวิธีการของ HTTP ให้ป้อน
POST
- ในช่อง URL ให้ป้อน URL ที่ต้องการทดสอบ เช่น
https://yourFlowTest.requestcatcher.com/test
- ในส่วนของส่วนหัว ให้ป้อนส่วนหัวที่มีคีย์ของ
Content-Type
และค่าของtext/plain
- ในส่วนเนื้อหา ให้ป้อน
{{product.title}}
และ{{product.status}}
เพื่อส่งชื่อและสถานะที่อัปเดตของสินค้าจากทริกเกอร์
- ในช่องวิธีการของ HTTP ให้ป้อน
เปิดใช้งานขั้นตอนการทํางาน
ทดสอบโดยการเปลี่ยนสถานะของสินค้า เช่น จาก แบบร่าง เป็น ใช้งานอยู่
สังเกตผลลัพธ์ในบริการทดสอบภายนอก เช่น
https://yourFlowTest.requestcatcher.com/
ในตัวอย่างนี้
ตัวอย่างที่ 2: ใช้เรียกใช้โค้ดเพื่อแยกวิเคราะห์การตอบกลับ HTTP
ในตัวอย่างนี้ ให้ใช้ Flow เพื่อส่งคำขอ HTTP ไปยังบริการภายนอก และใช้การดำเนินการเรียกใช้โค้ดเพื่อแยกวิเคราะห์ body
ของการตอบกลับ HTTP เพื่อใช้ในขั้นตอนต่อๆ ไปของขั้นตอนการทำงาน
ก่อนเริ่มดำเนินการ ให้เลือกบริการเว็บที่รับคำขอ HTTP และส่งกลับข้อมูล เช่น Postman Echo โปรดใช้ความระมัดระวังเสมอเมื่อส่งข้อมูลที่ละเอียดอ่อน (เช่น รหัสผ่านหรือคีย์ API) ไปยังผู้ให้บริการภายนอก
ขั้นตอนมีดังนี้
- เลือกทริกเกอร์ อัปเดตสถานะสินค้าแล้ว ซึ่งช่วยให้คุณสามารถทดสอบขั้นตอนการทำงานนี้ได้โดยการเปลี่ยนสถานะของสินค้า
- เพิ่มการดำเนินการส่งคำขอ HTTP ลงในขั้นตอนการทำงานและเชื่อมต่อกับทริกเกอร์ จากนั้นเปิดแผงการกำหนดค่าโดยคลิกที่ขั้นตอนส่งคำขอ HTTP
- ในช่องวิธีการของ HTTP ให้ป้อน
POST
- ในช่อง URL ให้ป้อน URL ที่ต้องการทดสอบ เช่น
https://postman-echo.com/post
- ในส่วนของส่วนหัว ให้ป้อนส่วนหัวที่มีคีย์ของ
Content-Type
และค่าของapplication/json
- ในส่วน Body ให้ป้อนตัวอย่าง JSON เพื่อส่งกลับไปยังขั้นตอนการทำงาน เช่น ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
- ในช่องวิธีการของ HTTP ให้ป้อน
3. เพิ่มการดำเนินการ**เรียกใช้โค้ด**ลงในขั้นตอนการทำงานและเชื่อมต่อกับการดำเนินการ**ส่งคำขอ HTTP** จากนั้นเปิดแผงการกำหนดค่าโดยคลิกที่ขั้นตอน**เรียกใช้โค้ด**
- ในช่อง**กำหนดอินพุต** ให้รวม `body` ที่ส่งกลับโดยออบเจ็กต์ `sendHTTPrequest` เช่น ```
query{
sendHttpRequest {
body
}
}
- ในช่อง**กำหนดเอาท์พุต** ซึ่งกำหนดไว้ในสคีมาเอาท์พุต เช่น ```
type Output { productTitle: String! productStatus: String! }
- ในช่อง**เขียนโค้ด** ให้แยกวิเคราะห์การตอบกลับโดยใช้เมธอด `JSON.parse` และตรวจสอบว่าข้อมูลที่คุณส่งกลับตรงกับรูปร่างและประเภทที่กำหนดไว้ในสคีมาเอาท์พุต เช่น ```
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
}
}
- เพิ่มการดำเนินการบันทึกเอาท์พุตลงในขั้นตอนการทำงานและเชื่อมต่อกับการดำเนินการเรียกใช้โค้ด จากนั้นเปิดแผงการกำหนดค่าโดยคลิกที่ขั้นตอนเรียกใช้โค้ด
- ในช่องเอาท์พุต ให้รวมตัวแปรที่ส่งกลับโดยขั้นตอนเรียกใช้โค้ด เช่น ``` Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
5. เปิดใช้งานขั้นตอนการทํางาน
6. ทดสอบโดยการเปลี่ยนสถานะของสินค้า เช่น จาก **แบบร่าง** เป็น **ใช้งานอยู่**
7. สังเกตผลลัพธ์การเรียกใช้จากหน้า **[Flow / การเรียกใช้ล่าสุด](https://admin.shopify.com/apps/flow/activity)** และสังเกตว่าค่าในขั้นตอน**บันทึกเอาท์พุต**ตรงกับค่าที่ส่งกลับจากเอาท์พุต**ส่งคำขอ HTTP**
## เทมเพลต {#templates}
### แจ้งผู้ให้บริการจัดการคำสั่งซื้อให้ทราบเกี่ยวกับคำสั่งซื้อที่จะมาถึง
ส่งคำขอ HTTP ไปยังผู้ให้บริการจัดการคำสั่งซื้อของคุณเมื่อคำสั่งซื้อมีแท็ก “คลังสินค้า” ใน Order Tagger [ดูเทมเพลต](https://shopify.com/admin/apps/flow/editor/templates/e99f15ae-454b-443b-b6c7-7dc4b2afc129)
### ส่งคำสั่งซื้อใหม่ไปยัง Airtable
ส่งคำสั่งซื้อไปยัง Airtable เมื่อสร้างคำสั่งซื้อ [ดูเทมเพลต](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7)
### ส่งสินค้าที่มีอยู่และสินค้าใหม่ทั้งหมดไปยัง Airtable
ทุก 10 นาที ให้ค้นหาสินค้าที่ไม่ได้ส่งไปที่ Airtable (ตามแท็ก) จากนั้นส่งสินค้าดังกล่าวไปยัง Airtable [ดูเทมเพลต](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82)
### อัปเดตสินค้าในแบตช์จากข้อมูลสินค้าที่จัดเก็บไว้ใน Airtable
อัปเดตสินค้าในแบตช์จากข้อมูลสินค้าที่จัดเก็บไว้ใน Airtable [ดูเทมเพลต](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b)
### แจ้งให้ลูกค้าทราบเกี่ยวกับบัตรของขวัญที่กำลังจะหมดอายุโดยใช้ SendGrid
รับบัตรของขวัญทั้งหมดที่กำลังจะหมดอายุภายใน 7 วันและส่งอีเมลถึงลูกค้าทุกวันโดยใช้ SendGrid [ดูเทมเพลต](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e)
### ส่งอีเมลโดยใช้ SendGrid เมื่อลูกค้าสร้างคำสั่งซื้อสำหรับรายการที่กำหนดเอง
ส่งอีเมลธุรกรรมโดยใช้ SendGrid เมื่อลูกค้าส่งคำสั่งซื้อรายการสินค้าแบบกำหนดเอง [ดูเทมเพลต](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb)