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:

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:
{
"status": 200,
"data": {
"name": "Prices",
"values": [
{ "id": 1, "value": 4000 },
{ "id": 2, "value": 24000 }
]
}
}Muốn lấy mảng
values: nhậpdata.values.Muốn lấy phần tử đầu tiên của
values: nhậpdata.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.

Phản hồi trả về có dạng:
{
"code": 200,
"data": {
"amount": 850,
"brand": "Google",
"codeID": "65728afa50806207f8b22c6a",
"phoneNumber": "855769145977"
}
}Cần lấy giá trị phoneNumber và codeID, nên điền Data path là bien rồi gán cho biến. Sau đó truy cập qua biểu thức {{variables.bien.codeID}} hoặc {{variables.bien.phoneNumber}}.

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

Phản hồi trả về:
{
"code": 200,
"data": {
"status": true,
"otp": "127535",
"id": "653103d36d2de34c3fa569d4",
"brand": "Google"
}
}Điền Data path là bien1 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:


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.

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

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

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

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}}):

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:





Xóa nội dung có sẵn rồi dán đoạn code sau:
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!");
}










Copy giá trị URL sau khi deploy:

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ụ:

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

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

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

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

Cụm node hoàn chỉnh:

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

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.

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

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:

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





Dán đoạn code:
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!");
}










Copy URL sau khi deploy:

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:

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

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

Nếu thành công:

Cụm node hoàn chỉnh:

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

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 đó.

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

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

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



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

