ส่งคำขอ HTTP

การดำเนินการส่งคำขอ HTTPจะเชื่อมต่อขั้นตอนการทำงานของคุณกับเซิร์ฟเวอร์หรือ URL ของเว็บไซต์ และส่งคำขอ HTTP

หลังจาก Flow ส่งคำขอ HTTP ของคุณแล้ว ระบบจะรอให้แอปของคุณตอบกลับด้วยรหัสตอบกลับ HTTP เป็นเวลาไม่เกิน 30 วินาที ถ้าหาก Flow ไม่ได้รับการตอบกลับหลังจาก 30 วินาที ระบบจะทำการตัดการเชื่อมต่อกับแอปของคุณ หลังจากนั้น ระบบจะส่งคำขอใหม่อีกครั้ง

ช่อง

การดำเนินการส่งคำขอ HTTP มีช่องดังต่อไปนี้

ช่องที่ใช้ในการดำเนินการส่งคำขอ HTTP
ช่องคำอธิบาย
วิธีการของ HTTPวิธีที่ใช้ส่งคำขอ HTTP การดำเนินการส่งคำขอ HTTP รองรับวิธีการต่อไปนี้
  • รับ - ส่งคำขอข้อมูลจากเซิร์ฟเวอร์
  • ลบ - ลบแหล่งข้อมูลออกจากเซิร์ฟเวอร์
  • หัว - ดึงส่วนหัวการตอบกลับ HTTP ของเซิร์ฟเวอร์
  • ตัวเลือก - ดึงตัวเลือกและฟีเจอร์ที่เซิร์ฟเวอร์รองรับ
  • แพตช์ - การอัปเดตแหล่งข้อมูลบางส่วนบนเซิร์ฟเวอร์
  • วาง - อัปเดตข้อมูลบนเซิร์ฟเวอร์
  • โพสต์ - สร้างหรือเปลี่ยนแหล่งข้อมูลบนเซิร์ฟเวอร์
URLURL ของเซิร์ฟเวอร์ที่มีการส่งคำขอ HTTP ไป
ส่วนหัวคู่คีย์และค่าสำหรับคำขอ HTTP สามารถป้อนคู่คีย์-ค่าได้หลายคู่
เนื้อหาเนื้อหาที่จะส่งไปยังเซิร์ฟเวอร์
เกี่ยวกับข้อผิดพลาดของไคลเอนต์ (การตอบกลับ 4XX)เมื่อได้รับรหัสการตอบกลับที่ระบุว่าไคลเอนต์เกิดข้อผิดพลาด Flow จะดำเนินการดังนี้
  • ลองอีกครั้ง - ลองอีกครั้งเป็นเวลา 24 ชั่วโมงจนกว่าจะได้รับรหัสการตอบกลับอื่นหรือหมดเวลา
  • ล้มเหลว – ดำเนินขั้นตอนการทำงานไม่สำเร็จ
  • ละเว้น – ละเว้นข้อผิดพลาดและดำเนินขั้นตอนการทำงานต่อ
เกี่ยวกับข้อผิดพลาดของเซิร์ฟเวอร์ (การตอบกลับ 5XX หรือ 429)เมื่อได้รับรหัสการตอบกลับที่ระบุว่าเซิร์ฟเวอร์เกิดข้อผิดพลาด Flow จะดำเนินการดังนี้
  • ลองอีกครั้ง - ลองอีกครั้งเป็นเวลา 24 ชั่วโมงจนกว่าจะได้รับรหัสการตอบกลับอื่นหรือหมดเวลา
  • ล้มเหลว – ดำเนินขั้นตอนการทำงานไม่สำเร็จ
  • ละเว้น – ละเว้นข้อผิดพลาดและดำเนินขั้นตอนการทำงานต่อ

ข้อมูลที่ส่งคืน

หากต้องการเข้าถึงข้อมูลที่ส่งกลับในขั้นตอนหลังจากการดำเนินการนี้ ให้ใช้ตัวแปรที่มีชื่อว่า sendHttpRequest ซึ่งจะรวมรายละเอียดทั้งหมดของการตอบกลับ HTTP ไว้ อีกทางเลือกหนึ่งคือใช้การดำเนินการเรียกใช้โค้ดเพื่อแยกวิเคราะห์ body ของการตอบกลับเพื่อใช้ในขั้นตอนต่อๆ ไปของขั้นตอนการทำงาน เช่นในตัวอย่างด้านล่าง

หากมีการใช้การดำเนินการส่งคำขอ HTTP หลายครั้งในขั้นตอนการทำงานเดียว ระบบจะเพิ่มตัวเลขลงในชื่อตัวแปร ตัวอย่างเช่น ในขั้นตอนการทำงานที่ใช้การดำเนินการส่งคำขอ HTTP สองครั้ง ตัวแปรแรกสำหรับข้อมูลที่ส่งกลับคือ sendHttpRequest และตัวแปรที่สองคือ sendHttpRequest1 ซึ่งคุณจะไม่สามารถปรับแต่งชื่อนี้ได้

รหัสการตอบกลับ

ตารางต่อไปนี้จะอธิบายว่า Flow ประมวลผลรหัสการตอบสนอง HTTPอย่างไรหลังจากได้รับการตอบสนอง

วิธีที่ Flow ประมวลผลรหัสตอบกลับ HTTP
รหัสตอบกลับ HTTPวิธีที่ Flow ประมวลผลรหัสตอบกลับ
ความสำเร็จ 2XX หรือ 3XXFlow จะทำเครื่องหมายคำขอ HTTP ว่าสำเร็จและดำเนินการขั้นต่อไปในขั้นตอนการทำงาน
ข้อผิดพลาด 4XX,
ข้อผิดพลาด 5XX และ 429
Flow จะดำเนินการต่อไปนี้โดยขึ้นอยู่กับวิธีกำหนดค่าการดำเนินการ
  • ลองอีกครั้ง - ลองอีกครั้งเป็นเวลา 24 ชั่วโมงจนกว่าจะได้รับรหัสการตอบกลับอื่นหรือหมดเวลา
  • ล้มเหลว – ดำเนินขั้นตอนการทำงานไม่สำเร็จ
  • ละเว้น – ละเว้นข้อผิดพลาดและดำเนินขั้นตอนการทำงานต่อ
รหัสตอบกลับอื่นๆหากการตอบกลับส่งกลับรหัสที่ไม่ได้อธิบายไว้ในตารางนี้ หรือหมดเวลาเมื่อลองดำเนินการซ้ำ Flow จะทำเครื่องหมายคำขอ HTTP ว่าล้มเหลว ล้มเหลวในการดำเนินขั้นตอนตอนการทำงาน และไม่ดำเนินการต่อไปในขั้นตอนการทำงาน

ข้อมูลลับ

ข้อมูลลับจะใช้ในการจัดเก็บข้อมูลที่ละเอียดอ่อนไว้อย่างปลอดภัยเพื่อใช้ในการดำเนินการส่งคำขอ HTTP เช่นโทเค็นการเข้าถึงหรือรหัสผ่าน ข้อมูลลับจะถูกสร้างและจัดการจากหน้า Flow > การตั้งค่า โดยข้อมูลลับจะประกอบด้วยแฮนเดิล ค่า และคำอธิบาย คุณสามารถอ้างอิงข้อมูลลับเป็นตัวแปร Liquid (เช่น {{secrets.handle}}) หรือจากตัวเลือกเพิ่มข้อมูลลับ เมื่อกำหนดค่า URL ค่า Header หรือช่องข้อมูลใน Body ค่าข้อมูลลับจะไม่ปรากฏในอินเทอร์เฟซ Flow และจะถูกซ่อนจากบันทึกการทำงานของขั้นตอนการทำงาน

ทริกเกอร์

การดำเนินการส่งคำขอ HTTP นั้นสามารถใช้ได้ในทุกขั้นตอนการทำงาน

ตัวอย่าง

ตัวอย่างที่ 1: ส่งคำขอ HTTP ไปยังบริการภายนอก

ในตัวอย่างนี้ ให้ใช้ Flow เพื่อส่งคำขอ HTTP ไปยังบริการภายนอก

ก่อนเริ่มดำเนินการ ให้กำหนดค่าบริการเว็บที่รับคำขอ HTTP และจัดเก็บข้อมูลคำขอเหล่านั้นเพื่อการทดสอบ เช่น Request Catcher โปรดใช้ความระมัดระวังเสมอเมื่อส่งข้อมูลที่ละเอียดอ่อน (เช่น รหัสผ่านหรือคีย์ API) ไปยังผู้ให้บริการภายนอก

ขั้นตอนมีดังนี้

  1. เลือกทริกเกอร์ อัปเดตสถานะสินค้าแล้ว ซึ่งช่วยให้คุณสามารถทดสอบขั้นตอนการทำงานนี้ได้โดยการเปลี่ยนสถานะของสินค้า

  2. เพิ่มการดำเนินการส่งคำขอ HTTP ลงในขั้นตอนการทำงานและเชื่อมต่อกับทริกเกอร์ จากนั้นเปิดแผงการกำหนดค่าโดยคลิกที่ขั้นตอนส่งคำขอ HTTP

    • ในช่องวิธีการของ HTTP ให้ป้อน POST
    • ในช่อง URL ให้ป้อน URL ที่ต้องการทดสอบ เช่น https://yourFlowTest.requestcatcher.com/test
    • ในส่วนของส่วนหัว ให้ป้อนส่วนหัวที่มีคีย์ของ Content-Type และค่าของ text/plain
    • ในส่วนเนื้อหา ให้ป้อน {{product.title}} และ {{product.status}} เพื่อส่งชื่อและสถานะที่อัปเดตของสินค้าจากทริกเกอร์
  3. เปิดใช้งานขั้นตอนการทํางาน

  4. ทดสอบโดยการเปลี่ยนสถานะของสินค้า เช่น จาก แบบร่าง เป็น ใช้งานอยู่

  5. สังเกตผลลัพธ์ในบริการทดสอบภายนอก เช่น https://yourFlowTest.requestcatcher.com/ ในตัวอย่างนี้

ตัวอย่างที่ 2: ใช้เรียกใช้โค้ดเพื่อแยกวิเคราะห์การตอบกลับ HTTP

ในตัวอย่างนี้ ให้ใช้ Flow เพื่อส่งคำขอ HTTP ไปยังบริการภายนอก และใช้การดำเนินการเรียกใช้โค้ดเพื่อแยกวิเคราะห์ body ของการตอบกลับ HTTP เพื่อใช้ในขั้นตอนต่อๆ ไปของขั้นตอนการทำงาน

ก่อนเริ่มดำเนินการ ให้เลือกบริการเว็บที่รับคำขอ HTTP และส่งกลับข้อมูล เช่น Postman Echo โปรดใช้ความระมัดระวังเสมอเมื่อส่งข้อมูลที่ละเอียดอ่อน (เช่น รหัสผ่านหรือคีย์ API) ไปยังผู้ให้บริการภายนอก

ขั้นตอนมีดังนี้

  1. เลือกทริกเกอร์ อัปเดตสถานะสินค้าแล้ว ซึ่งช่วยให้คุณสามารถทดสอบขั้นตอนการทำงานนี้ได้โดยการเปลี่ยนสถานะของสินค้า
  2. เพิ่มการดำเนินการส่งคำขอ HTTP ลงในขั้นตอนการทำงานและเชื่อมต่อกับทริกเกอร์ จากนั้นเปิดแผงการกำหนดค่าโดยคลิกที่ขั้นตอนส่งคำขอ HTTP
    • ในช่องวิธีการของ HTTP ให้ป้อน POST
    • ในช่อง URL ให้ป้อน URL ที่ต้องการทดสอบ เช่น https://postman-echo.com/post
    • ในส่วนของส่วนหัว ให้ป้อนส่วนหัวที่มีคีย์ของ Content-Type และค่าของ application/json
    • ในส่วน Body ให้ป้อนตัวอย่าง JSON เพื่อส่งกลับไปยังขั้นตอนการทำงาน เช่น ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
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
}
}
  1. เพิ่มการดำเนินการบันทึกเอาท์พุตลงในขั้นตอนการทำงานและเชื่อมต่อกับการดำเนินการเรียกใช้โค้ด จากนั้นเปิดแผงการกำหนดค่าโดยคลิกที่ขั้นตอนเรียกใช้โค้ด
    • ในช่องเอาท์พุต ให้รวมตัวแปรที่ส่งกลับโดยขั้นตอนเรียกใช้โค้ด เช่น ``` 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)
ไม่พบคำตอบที่คุณต้องการงั้นหรือ เราพร้อมช่วยเหลือคุณ