ส่งคำขอ HTTP

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

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

ฟิลด์

การดำเนินการ ส่งคำขอ HTTP ประกอบด้วยฟิลด์ต่อไปนี้

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

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

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

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

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

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

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

ข้อมูลลับ

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

ทริกเกอร์

การดำเนินการ ส่งคำขอ HTTP สามารถใช้ได้ในทุกเวิร์กโฟลว์

ตัวอย่าง

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

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

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

ขั้นตอน:

  1. เลือกทริกเกอร์ อัปเดตสถานะสินค้าแล้ว ซึ่งช่วยให้คุณสามารถทดสอบเวิร์กโฟลว์นี้ได้โดยเปลี่ยนสถานะบนสินค้า
  2. เพิ่ม ส่งคำขอ HTTP การดำเนินการไปยังเวิร์กโฟลว์ของคุณและเชื่อมต่อเข้ากับทริกเกอร์ จากนั้นเปิดแผงการกำหนดค่าโดยการคลิก ส่งคำขอ HTTP ขั้นตอน
    • ในช่อง HTTP Method ให้ป้อน POST
    • ในช่อง URL ให้ป้อน URL ที่จะใช้ทดสอบ เช่น https://yourFlowTest.requestcatcher.com/test
    • ในส่วนส่วนหัว ให้ป้อนส่วนหัวที่มีคีย์เป็น Content-Type และค่าเป็น text/plain
    • ในส่วน Body ให้ป้อน {{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 Method ให้ป้อน 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
        }
      }
  4. เพิ่มการดำเนินการ บันทึกเอาท์พุต ไปยังเวิร์กโฟลว์ของคุณและเชื่อมต่อเข้ากับการดำเนินการ รันโค้ด จากนั้นเปิดแผงการกำหนดค่าโดยการคลิกที่ขั้นตอน รันโค้ด

    • ในช่อง เอาท์พุต ให้ใส่ตัวแปรที่ส่งคืนจากขั้นตอน รันโค้ด เช่น

      Title from HTTP response: {{runCode.productTitle}}
      Status from HTTP response: {{runCode.productStatus}}
  5. เปิดใช้งานเวิร์กโฟลว์

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

  7. สังเกตผลการรันจากหน้า Flow / การรันล่าสุด และดูว่าค่าในขั้นตอน บันทึกเอาท์พุต ตรงกับค่าที่ส่งคืนจากเอาท์พุตของ ส่งคำขอ HTTP หรือไม่

เทมเพลต

แจ้งผู้ให้บริการจัดการคำสั่งซื้อของคุณเกี่ยวกับคำสั่งซื้อที่กำลังจะมาถึง

ส่งคำขอ HTTP ไปยังผู้ให้บริการจัดการคำสั่งซื้อของคุณเมื่อคำสั่งซื้อได้รับการแท็ก Warehouse ใน Order Tagger ดูเทมเพลต

ส่งคำสั่งซื้อใหม่ไปยัง Airtable

ส่งคำสั่งซื้อไปยัง Airtable เมื่อมีการสร้างคำสั่งซื้อ ดูเทมเพลต

ส่งสินค้าที่มีอยู่ทั้งหมดและสินค้าใหม่ไปยัง Airtable

ค้นหาสินค้าที่ยังไม่ได้ส่งไปยัง Airtable (ตามแท็ก) ทุกๆ 10 นาที และส่งสินค้าเหล่านั้นไปยัง Airtable ดูเทมเพลต

อัปเดตสินค้าเป็นชุดจากข้อมูลสินค้าที่จัดเก็บไว้ใน Airtable

อัปเดตสินค้าเป็นชุดจากข้อมูลสินค้าที่จัดเก็บไว้ใน Airtable ดูเทมเพลต

แจ้งเตือนลูกค้าเกี่ยวกับบัตรของขวัญที่ใกล้หมดอายุโดยใช้ SendGrid

ในทุกๆ วัน ให้ดึงข้อมูลบัตรของขวัญทั้งหมดที่จะหมดอายุใน 7 วันและส่งอีเมลให้ลูกค้าโดยใช้ SendGrid ดูเทมเพลต

ส่งอีเมลโดยใช้ SendGrid เมื่อลูกค้าสั่งซื้อสินค้าแบบกำหนดเอง

ส่งอีเมลธุรกรรมโดยใช้ SendGrid เมื่อลูกค้าสั่งซื้อสินค้าแบบกำหนดเอง ดูเทมเพลต