Skip to content

HTTP Request

Node này thực hiện các yêu cầu HTTP (GET, POST, v.v.) đến URL đích. Thường được dùng để gọi API lấy dữ liệu, gửi dữ liệu lên server hoặc tương tác với các dịch vụ bên ngoài.

Yêu cầu phương thức

Chọn phương thức HTTP: GET, POST, PUT, DELETE...

Địa chỉ đích

Nhập URL mà yêu cầu sẽ được gửi đến.

Chọn một loại nội dung

Có 4 loại nội dung:

  • text/plain: Văn bản thuần túy, không có định dạng đặc biệt.
  • application/json: Dữ liệu JSON, thường dùng để truyền dữ liệu giữa server và client.
  • multipart/form-data: Dùng khi cần tải tệp dữ liệu lên server.
  • application/x-www-form-urlencoded: Kiểu mã hóa mặc định cho form. Tất cả ký tự được mã hóa trước khi gửi (khoảng trắng thành + hoặc %20, ký tự đặc biệt thành mã ASCII HEX).

Sử dụng cache

Lưu kết quả trả về khi chạy thành công. Ở lần chạy tiếp theo, hệ thống sẽ dùng lại kết quả đã lưu thay vì gọi HTTP lại.

Sử dụng proxy của profile

Sử dụng proxy đã cấu hình trong profile khi thực hiện yêu cầu HTTP.

Thời gian chờ

Thời gian tối đa chờ phản hồi từ server. Nhập 0 để không giới hạn thời gian chờ.

Headers

Dùng để xác thực hoặc gửi thông tin bổ sung khi gọi API. Ví dụ, xác thực bằng Bearer token:

Authorization:Bearer hfkasf2938safjkb,bfclsaidfcf,jsacbliwgsbdcjsacsdakhfasjbasdfhfakjsfdbcasdfgasfbasdfhbfcbashdagdkbsajfhgdsb.

Cách điền trong node:

Header

Viết biểu thức bên trong Nội dung

Khi viết biểu thức trong nội dung để truy cập biến, bảng... cần lưu ý rằng kết quả cuối cùng phải là JSON hợp lệ. Để tránh lỗi "Nội dung không hợp lệ JSON", hãy đóng gói biểu thức bên trong hàm $stringify.

Phản Hồi

Cấu hình cách xử lý dữ liệu trả về sau khi gọi API.

  • Kiểu Phản Hồi: Chọn kiểu dữ liệu phản hồi, mặc định là JSON.

  • Đường Dẫn Dữ Liệu: Khi chọn kiểu phản hồi JSON, có thể chỉ định đường dẫn đến dữ liệu mong muốn. Ví dụ với phản hồi:

json
{
	"status": 200,
	"data": {
		"name": "Prices",
		"values": [
			{ "id": 1, "value": 4000 },
			{ "id": 2, "value": 24000 }
		]
	}
}
  • Muốn lấy mảng values: nhập data.values.

  • Muốn lấy phần tử đầu tiên của values: nhập data.values.0.

  • Muốn lấy toàn bộ dữ liệu: để trống trường Data path.

  • Gán cho biến: Gán giá trị phản hồi vào một biến.

  • Tên Biến: Nhập tên biến để lưu giá trị. Trường này xuất hiện khi chọn Gán cho biến.

  • Chèn vào bảng: Chèn giá trị vào cột trong bảng.

  • Chọn cột: Chọn cột nơi giá trị được chèn. Trường này xuất hiện khi chọn Chèn vào bảng.

  • Thêm hàng bổ sung: Chèn thêm một hàng vào cột trong bảng.

Ví dụ thực tế

Gọi API lấy số điện thoại và nhận OTP

Ví dụ

Ví dụ này dùng API của trang http://ktool.site/ để thuê số điện thoại và lấy mã OTP.

Bước 1: Lấy số điện thoại

Chọn phương thức GET. Địa chỉ đích là URL API lấy số điện thoại có dạng: http://ktool.site/api/v1/thueso/create?tokenid={token}&quocgia={mã quốc gia}&dichvu={tên dịch vụ}

Ví dụ: http://ktool.site/api/v1/thueso/create?tokenid=65170ce2bf4d11f4acfb99f45&quocgia=cam&dichvu=Google

API này không yêu cầu nội dung (body) và token đã nằm trong URL nên không cần điền Headers.

Header

Phản hồi trả về có dạng:

json
{
    "code": 200,
    "data": {
        "amount": 850,
        "brand": "Google",
        "codeID": "65728afa50806207f8b22c6a",
        "phoneNumber": "855769145977"
    }
}

Cần lấy giá trị phoneNumbercodeID, nên điền Data pathbien rồi gán cho biến. Sau đó truy cập qua biểu thức {{variables.bien.codeID}} hoặc {{variables.bien.phoneNumber}}.

Res

Bước 2: Lấy mã OTP

Chọn phương thức GET. Địa chỉ đích có dạng: http://ktool.site/api/v1/thueso/detail?tokenid={token}&code={codeID}

Ví dụ: http://ktool.site/api/v1/thueso/detail?tokenid=65170ce2bf4d11f4acfb99f45&code=65352e816d2de34c3fa5d2e32

Header

Phản hồi trả về:

json
{
    "code": 200,
    "data": {
        "status": true,
        "otp": "127535",
        "id": "653103d36d2de34c3fa569d4",
        "brand": "Google"
    }
}

Điền Data pathbien1 rồi gán cho biến. Sau đó lấy mã OTP qua biểu thức {{variables.bien1.otp}} để dùng trong node Nhấn Phím:

Res

chenres

Chèn giá trị vào Google Sheet khi chạy một profile

Ví dụ

Yêu cầu: Mở tất cả link từ Google Trang tính, mở link nào thì chèn trạng thái done vào cột stt cùng hàng.

click chuot

Tạo biến range có giá trị 2 bằng node Chèn dữ liệu:

click chuot

Cấu hình node Google sheets để lấy dữ liệu:

click chuot

Cấu hình node Lặp dữ liệu để lặp qua dữ liệu từ Google Sheets:

click chuot

Cấu hình node Mở liên kết với biểu thức {{loopData.sheet.link}} (theo mẫu {{loopData.loopId.ten_cot_du_lieu}}):

click chuot

Tạo Google Apps Script để cập nhật Google Sheet qua API:

Truy cập https://script.google.com/home và thao tác theo hướng dẫn:

click chuotclick chuotclick chuotclick chuotclick chuot

Xóa nội dung có sẵn rồi dán đoạn code sau:

javascript
function doPost(e) {
  try {
    const spreadsheetId = e.parameter.spreadsheetId;
    const range = e.parameter.range;
    const obj = JSON.parse(e.postData.contents);
    const values = obj;
    const valueInputOption = "USER_ENTERED";
    Sheets.Spreadsheets.Values.update({ values }, spreadsheetId, range, {valueInputOption: valueInputOption});
    return ContentService.createTextOutput("ok");
  } catch(e) {
    return ContentService.createTextOutput(JSON.stringify(e));
  }
}

function doGet(e) {
  return ContentService.createTextOutput("Success!");
}

click chuotclick chuotclick chuotclick chuotclick chuotclick chuotclick chuotclick chuotclick chuotclick chuotclick chuot

Copy giá trị URL sau khi deploy:

click chuot

Cấu hình node HTTP Request:

Địa chỉ đích, điền theo công thức URL?spreadsheetId=a&range=b, trong đó a là ID của Google Trang tính, b là ô cần cập nhật. Nếu có nhiều sheet, ghi dạng range=trang2!B2. Ví dụ:

https://script.google.com/macros/s/AKfycbxw6yFtbqapqJ07J9gwyKUoGhXjc_kIehxT1HPO9ZUwCal-iw4SIjB53ahIs-WNEBXdtA/exec?spreadsheetId=1qDb4fe4dWFHfd1HIYkc8JPTd0IoYpsRVyTwfJhaZcV8&range=B{{variables.range}}

click chuot

Phần nội dung, điền giá trị muốn chèn. Nếu dùng biến, ghi dạng [["{{variables.a}}"]]:

click chuot

Gán phản hồi vào biến status để kiểm tra kết quả:

click chuot

Nếu thành công, biến nhận giá trị:

click chuot

Dùng node Chèn dữ liệu để tăng biến range lên 1 cho lần lặp tiếp theo:

click chuot

Cụm node hoàn chỉnh:

click chuot

Khi chạy, giá trị done được cập nhật cạnh mỗi link:

click chuot

Chèn giá trị vào Google Sheet khi chạy nhiều profile

Ví dụ

Yêu cầu: Mỗi profile mở một link từ Google Trang tính theo thứ tự, sau đó chèn trạng thái done.

click chuot

Cấu hình node Google sheets để lấy dữ liệu:

click chuot

Cấu hình node Mở liên kết với biểu thức {{googleSheets.data.[runIndex].link}} (theo mẫu {{googleSheets.khoa_tham_chieu.[runIndex].ten_cot}}). runIndex là thứ tự profile khi chạy: profile đầu tiên có runIndex = 0, profile thứ hai = 1:

click chuot

Tạo Google Apps Script (tương tự ví dụ trên):

click chuotclick chuotclick chuotclick chuotclick chuot

Dán đoạn code:

javascript
function doPost(e) {
  try {
    const spreadsheetId = e.parameter.spreadsheetId;
    const range = e.parameter.range;
    const obj = JSON.parse(e.postData.contents);
    const values = obj;
    const valueInputOption = "USER_ENTERED";
    Sheets.Spreadsheets.Values.update({ values }, spreadsheetId, range, {valueInputOption: valueInputOption});
    return ContentService.createTextOutput("ok");
  } catch(e) {
    return ContentService.createTextOutput(JSON.stringify(e));
  }
}

function doGet(e) {
  return ContentService.createTextOutput("Success!");
}

click chuotclick chuotclick chuotclick chuotclick chuotclick chuotclick chuotclick chuotclick chuotclick chuotclick chuot

Copy URL sau khi deploy:

click chuot

Cấu hình node HTTP Request:

Địa chỉ đích, dùng runIndex với hàm increment để tự động xác định ô cần cập nhật:

https://script.google.com/macros/s/AKfycbxw6yFtbqapqJ07J9gwyKUoGhXjc_kIehxT1HPO9ZUwCal-iw4SIjB53ahIs-WNEBXdtA/exec?spreadsheetId=1qDb4fe4dWFHfd1HIYkc8JPTd0IoYpsRVyTwfJhaZcV8&range=B{{$increment([runIndex],2)}}

click chuot

Điền nội dung muốn chèn. Nếu dùng biến: [["{{variables.a}}"]]:

click chuot

Gán phản hồi vào biến status:

click chuot

Nếu thành công:

click chuot

Cụm node hoàn chỉnh:

click chuot

Khi chạy, giá trị được cập nhật đúng cạnh mỗi link:

click chuot

Lấy giá trị từ Bảng tính (Excel) sử dụng trong node HTTP Request

Ví dụ

Yêu cầu: Lấy token tài khoản trên trang https://mail.tm/vi/ qua API để thao tác với tài khoản đó.

click chuot

Chuẩn bị file Excel chứa thông tin mail và password:

click chuot

Cấu hình node Bảng tính để lấy dữ liệu từ file:

click chuot

Cấu hình node HTTP Request để gọi API lấy token:

click chuot

click chuot

click chuot

Sau khi chạy, giá trị token trả về:

click chuot