GIAO TRINH KY THUAT
NODE n8n · C11 — LOTUS GPM LOGIN
Quan ly profile GPM-Login qua cau MQTT — 8 action, 2 nhom
Package n8n-nodes-c11_lotus_gpm_login@0.0.7 · payload c11-gpm-login-man-v1 · Bien soan 2026-09-19
Cuon giao trinh nay huong dan toan dien node n8n C11 — LOTUS GPM Login: mot node chuyen dung de QUAN LY profile trinh duyet GPM-Login (antidetect browser) tu trong workflow n8n, thong qua mot cau noi (bridge) MQTT ⇄ HTTP di kem san trong thu vien.
Doi tuong doc
Ky su van hanh workflow n8n can tao / mo / dong / cap nhat / xoa profile GPM hang loat.
Ky su tich hop mo rong bridge Python hoac them action moi cho C11.
Nguoi moi tiep quan he thong Great Lotus, can hieu C11 dung o dau trong chuoi n8n → MQTT → worker.
GHI CHÚ · KY LUAT NGUON CUA TAI LIEU NAY Moi con so va ten thanh phan trong sach deu truy duoc ve mot trong ba nguon: (1) MA NGUON DANG CHAY — doc thang file LotusGpmLogin.node.ts va mqtt_client_gpm_login_man.py; (2) TAI LIEU NOI BO co so do that — Agent_Readme.md, Agent_MQTT_and_Bridge.md, Agent_Actions_Reference.md, va memory du an; (3) ANH CHUP HE THONG SONG — mo node that trong n8n tren Chrome that (B35) luc bien soan. Cho nao khong truy duoc nguon thi bo, khong doan cho du trang. ▸ Phien ban node kiem tra truc tiep trong container n8n: 0.0.7 — TRUNG voi ban trong repo, nen tai lieu nay dung thang ma nguon repo lam chuan. |
Hang muc |
Gia tri luc bien soan (2026-09-19) |
n8n |
phien ban 2.36.8 — container lotus_n8n, API cong 20150 |
Node C11 |
n8n-nodes-c11_lotus_gpm_login@0.0.7 (cai trong container, TRUNG repo) |
Type node |
n8n-nodes-c11_lotus_gpm_login.lotusGpmLogin · hien thi 'LOTUS GPM Login' |
So action / nhom |
8 action / 2 nhom (Profile ×7, Group ×1) |
payload version |
c11-gpm-login-man-v1 |
Broker MQTT |
128.199.200.17:1883 (VPS ngoai) — KHONG phai B06 noi bo |
GPM HTTP API |
http://127.0.0.1:16813/api/v3 (cuc bo tren may worker) |
Credential n8n |
kieu 'mqtt' (bat buoc) — anh chup dung WP1_HP1_DCP_LOTUS_MQTTS |
Anh chup giao dien lay tu mot workflow tao rieng de lam tai lieu (mot node C11 noi sau Manual Trigger), mo Node Detail View (NDV) tren Chrome that.
⟳ Mở bằng Microsoft Word rồi bấm Ctrl+A → F9 để sinh mục lục kèm số trang.
PHẦN I
TONG QUAN
C11 — LOTUS GPM Login la mot node n8n dung de dieu khien ung dung GPM-Login tu xa. GPM-Login la mot 'antidetect browser': no tao nhieu profile trinh duyet, moi profile mang mot dau van tay (fingerprint) khac nhau de trong nhu mot thiet bi / nguoi dung rieng, tranh bi website lien ket cac tai khoan voi nhau.
Van de ma C11 giai quyet
GPM chi co REST API cuc bo (127.0.0.1:16813) tren may worker — tu n8n (may chu khac) khong goi thang duoc. C11 bac cau qua MQTT.
Cong viec profile lap lai nhieu (tao hang loat, mo/dong theo lo, doi proxy) — can dua vao workflow tu dong thay vi thao tac tay trong GPM.
Chuoi tu dong hoa web can mot buoc MO DAU: mo profile va lay cong CDP — open_profile cua C11 lam viec do, roi C10/C12 bam vao dieu khien tiep.
Neu chi nho MOT dieu:
ĐÚNG THIẾT KẾ · DINH NGHIA MOT CAU C11 = 'GPM profile manager' — 8 action GPM (list / get / create / open / close / update / delete profile + list groups). 8 action nay ve sau duoc gop nguyen vao nhom ManagerAction cua C10. C11 ton tai doc lap cho tinh huong CHI can quan ly profile ma khong can browser automation, va di kem SAN mot client Python de chay duoc ngay. |
Rat de hieu nham 'C11 tu mo Chrome'. Thuc te node C11 KHONG tu lam gi tren may worker — no chi dong goi lua chon thanh JSON va publish len MQTT. Ai lam that:
Thanh phan |
Trach nhiem |
KHONG lam gi |
Node n8n C11 (nua 1) |
Sinh UI, gom payload JSON, publish <topic>, (tuy chon) cho RES_<topic> |
Khong goi HTTP, khong dung tay vao GPM |
Bridge Python (nua 2) |
Subscribe topic, dich payload → GPM HTTP /api/v3, publish ket qua |
Khong quyet dinh nghiep vu; chi dich lenh |
Ung dung GPM |
Tao/mo/dong Chrome that, quan ly fingerprint, tra JSON |
Khong biet gi ve MQTT |
Diem khac biet lon nhat cua C11 so voi C10/C12 la no gom HAI NUA lam viec cung nhau qua MQTT, va nua thu hai (bridge Python) duoc dong goi SAN trong repo.
Hình 2.1. Hai nua cua C11: node n8n (nua 1) va bridge Python (nua 2) noi nhau qua MQTT, bridge goi tiep GPM HTTP API.
Nua 1 — Node n8n LOTUS GPM Login
Giong khung C10/C12: data-driven ACTION_SPECS, publish action qua MQTT, tuy chon cho phan hoi. Nhung chi co 8 action quan ly profile, khong co browser-control.
Nua 2 — Bridge Python mqtt_client_gpm_login_man.py
Subscribe topic request, DICH payload C11 thanh loi goi GPM HTTP API (http://127.0.0.1:16813/api/v3/...), roi publish ket qua ve RES_<topic>. Day la ben THUC SU noi chuyen voi ung dung GPM. Khong co bridge (hoac mot client tuong duong) thi node C11 publish vao hu khong.
LƯU Ý · NODE C11 MOT MINH CHUA DU Nua n8n publish MQTT la du de GUI lenh, nhung PHAI co bridge Python (nua 2) chay song song thi lenh moi CO TAC DUNG len GPM. Day la ly do C11 dong goi san bridge trong repo. |
Hình 2.2. C10 / C11 / C12: pham vi va client di kem. C11 chi quan ly profile va kem san bridge.
Thu vien |
Co nua n8n? |
Client di kem |
Pham vi |
C10 |
Co |
Playwright A12 (tach roi) |
Browser automation + profile GPM (hop nhat) |
C11 (day) |
Co |
Bridge Python KEM SAN trong repo |
CHI quan ly profile GPM |
C12 |
Co |
PyAutoGUI A13 (tach roi) |
Browser automation tren desktop that |
GHI CHÚ · QUAN HE VOI C10 8 action cua C11 = TAP CON ManagerAction cua C10. Khi can vua quan ly profile vua tu dong hoa web trong cung workflow, dung C10. Khi chi can CRUD profile, dung C11 cho gon — va no chay duoc ngay nho bridge Python co san. Cac hang so fingerprint (BROWSER_VERSION/OS/SCREEN/WEBRTC) trung nhau, nen giu DONG BO khi cap nhat. |
Toan bo UI cua nua n8n khong viet tay tung o. No sinh ra tu MOT mang khai bao ACTION_SPECS (8 action), qua bo sinh buildActionArtifacts().
Hình 2.3. Data-driven codegen: ACTION_SPECS → buildActionArtifacts() sinh dropdown, notice, o nhap, ban do execute().
resourceOptions — dropdown Action Group (Profile / Group).
operationProperties — dropdown Action + tom tat action.
actionDocProperties — notice link tai lieu tung action.
actionProperties — cac o nhap tham so + tooltip 3 vi du.
actionDefinitions — ban do de execute() gom payload dung field.
He qua: them 1 action = them 1 dong vao ACTION_SPECS (nua n8n) + 1 ham _handle_<fn> (bridge). UI, mo ta, vi du, placeholder va validation co ban tu co.
PHẦN II
KIEN TRUC VA HA TANG
Mot lan chay node C11 di qua bon chang.
Hình 3.1. Luong end-to-end: node → broker → bridge → GPM HTTP, roi phan hoi ve RES_<topic>.
Node gom mot doi tuong JSON gom bon khoi: version, action, inputs, meta.
{ "version": "c11-gpm-login-man-v1", "action": { "key": "profile.open_profile", "group": "ProfileAction", "function": "open_profile" }, "inputs": { "profile_id": { "type": "string", "value": "xgyasg1995" } }, "meta": { "requestId": "a1b2c3d4e5f60718", "requestTopic": "GPM_LOGIN_TOPIC", "responseTopic": "RES_GPM_LOGIN_TOPIC", "waitForResponse": true } } |
version — hang so c11-gpm-login-man-v1 — nhan dien giao thuc.
action — key (vd profile.open_profile), group, function. Bridge dispatch theo function (hoac phan sau dau '.' cua key).
inputs — chi chua tham so nguoi dung THUC SU dien; o rong da bi loai. Moi tham so boc {type, value}.
meta — requestId (16 hex ngau nhien), requestTopic, responseTopic, waitForResponse. KHONG gui responseTimeoutMs trong meta — do node giu.
{ "ok": true, "request": { "request_id": "...", "request_topic": "...", "action": "open_profile" }, "http": { "method": "GET", "url": ".../api/v3/profiles/start/xgyasg1995?...", "status_code": 200 }, "data": { /* body JSON GPM tra ve */ }, "error": null, "meta": { "requestId": "...", "bridge": "c11_gpm_login_man_mqtt_client" } } |
GHI CHÚ · KHOP REQUESTID — CHONG NHAN NHAM Node BO QUA moi ban tin tren response topic co requestId khac request hien tai. Bridge ECHO requestId o ca request.request_id lan meta.requestId. Nho vay nhieu node chay song song tren cung mot response topic khong nhan nham ket qua cua nhau. |
Diem |
C11 |
C10 / C12 |
Response Topic |
Field RIENG, cho nguoi dung dat tuy y (mac dinh RES_ + topic) |
Luon tu suy RES_<topic> cung |
Response Timeout |
Don vi mili-giay (mac dinh 10000) |
Don vi giay |
Parse Response As JSON |
Bat/tat; giu ca raw lan payload |
Khong co lua chon nay |
Phan doan thanh/bai |
Do workflow tu lam theo ok/error |
Ap quy tac return:'NG' |
Output cua nua n8n xuong node sau nam trong mqtt: mqtt.response.payload.data... la noi lay du lieu GPM (vd danh sach profile, id profile moi tao).
Bridge la ben bien MQTT thanh HTTP. No dispatch qua bang self._handlers (map ca dang profile.list_profiles lan list_profiles) → ham _handle_*, moi ham dung request GPM /api/v3.
Hình 4.1. Anh xa 8 action → phuong thuc + endpoint GPM HTTP API /api/v3.
Action (fn) |
HTTP |
Endpoint |
Tham so / body |
list_profiles |
GET |
/profiles |
query: page(>=1,md 1), per_page(md 100), group_id, group, sort(int), search |
get_profile_info |
GET |
/profiles/{id} |
— (vai ban GPM dung /profile/{id}) |
create_profile |
POST |
/profiles/create |
body fingerprint + extra_payload (merge). Bo field None |
open_profile |
GET |
/profiles/start/{id} |
query: addination_args, remote_port, win_scale, win_pos, win_size |
close_profile |
GET |
/profiles/close/{id} |
— |
update_profile |
POST |
/profiles/update/{id} |
body cac field doi (>=1) + group_id(int) + extra_payload |
delete_profile |
GET |
/profiles/delete/{id} |
query: mode (md 2) |
list_groups |
GET |
/groups |
— |
base_url chuan hoa ve <gpm-base-url>/api/v3. Neu co --gpm-api-key, bridge tu them ?api_key=... vao MOI request.
Ham _build_addination_args_with_remote_port: neu co remote_port, bridge CHEN/THAY --remote-debugging-port=<port> vao chuoi addination_args (regex thay neu da co, noi them neu chua). Day chinh la cach C11 mo profile voi cong CDP co dinh de C10/Playwright attach vao sau.
Vi MQTT QoS 1 la at-least-once, cung mot request co the toi bridge nhieu lan. Voi create/delete/update profile, chay hai lan la tai hai. Bridge dung cache theo requestId.
Hình 4.2. May trang thai dedupe: NEW → IN-FLIGHT → PROCESSED; ban trung bi bo qua hoac phat lai cache.
Trang thai |
Y nghia |
Hanh dong |
processed |
requestId da xu ly xong truoc do |
Phat LAI response da cache, khong goi GPM lai |
inflight |
ban trung toi khi ban goc dang chay |
Bo qua delivery nay |
new |
requestId chua thay |
Danh dau in-flight roi xu ly binh thuong |
GHI CHÚ · LOG 'DUPLICATE REQUEST' LA DUNG Neu thay log 'Duplicate request detected ... replay cached response', do la hanh vi DUNG (bao ve idempotency), khong phai bug. Muon retry THAT su phai doi requestId — chay lai node se sinh requestId moi. TTL cache = --dedupe-ttl-sec (mac dinh 300s, toi thieu 10s). |
Co CLI |
ENV |
Mac dinh |
--broker-host |
MQTT_HOST |
127.0.0.1 |
--broker-port |
MQTT_PORT |
1883 |
--broker-username / --broker-password |
MQTT_USERNAME / _PASSWORD |
(rong) |
--request-topics |
MQTT_REQUEST_TOPICS |
gpm/login/request (ngan cach dau phay) |
--request-qos / --response-qos |
MQTT_REQUEST_QOS / _RESPONSE_QOS |
1 / 1 |
--default-response-prefix |
MQTT_RESPONSE_PREFIX |
RES_ |
--gpm-base-url |
GPM_BASE_URL |
http://127.0.0.1:16813 (tu them /api/v3) |
--gpm-api-key |
GPM_API_KEY |
(rong) → them query api_key |
--http-timeout-sec |
GPM_HTTP_TIMEOUT_SEC |
30 |
--dedupe-ttl-sec |
MQTT_DEDUPE_TTL_SEC |
300 |
NGUY HIỂM · DEBUG_PRESET_ARGS CHUA CREDENTIAL THAT Dau file bridge co DEBUG_FLAG=True + DEBUG_PRESET_ARGS: khi chay KHONG co tham so dong lenh (F5 trong VSCode, len(sys.argv)==1), bridge dung preset chua credential broker THAT (host 128.199.200.17, user/pass, topic GPM_LOGIN_TOPIC). Khi trien khai production, truyen tham so qua CLI/ENV va giu file nay khong ro ri ra ngoai. |
PHẦN III
GIAO DIEN — MO XE TUNG MAN HINH
Khi bam doi vao node C11 tren canvas, n8n mo Node Detail View (NDV) gom ba cot: INPUT (trai), Parameters (giua) va OUTPUT (phai). Duoi day danh so tung thanh phan.
Hình 5.1. Giai phau NDV cua node C11 — 13 thanh phan chinh (anh chup dang o action Update Profile).
So |
Thanh phan |
Cong dung |
1 |
Vung INPUT |
Du lieu tu node truoc. 'No input data' khi chua chay node truoc do |
2 |
Nut Docs / dong |
Docs mo documentationUrl (docs.gpmloginapp.com); dau X dong NDV |
3 |
Credential |
Chon credential kieu 'mqtt' (bat buoc). Anh dung WP1_HP1_DCP_LOTUS_MQTTS |
4 |
Action Group |
Chon nhom chuc nang: Profile hoac Group |
5 |
Action |
Chon action cu the trong nhom da chon |
6 |
Notice tai lieu |
Tom tat action + link 'Huong dan chi tiet' + 'Muc luc tai lieu C11' |
7 |
Topic |
Kenh MQTT gui lenh di (bat buoc). Vd GPM_LOGIN_TOPIC |
8 |
QoS |
Muc dam bao gui tin: 0/1/2. Thuong dung 1 |
9 |
Include Input Items |
Bat de gui kem du lieu tu node truoc sang bridge |
10 |
Wait For Response |
Bat de node cho phan hoi RES_<topic> roi moi tra ket qua |
11 |
Action Input Fields |
Cac o tham so rieng cua action dang chon (o day: Group ID...) |
12 |
Tieu de node |
'LOTUS GPM Login' + bieu tuong GPM |
13 |
Vung OUTPUT |
Ket qua tra ve sau khi chay; 'No output data' khi chua chay |
LƯU Ý · O BI AN BANG DISPLAYOPTIONS VAN GUI GIA TRI Cac o tham so chi HIEN khi chon dung action (qua displayOptions). Nhung theo dac diem n8n, o bi an van co the mang gia tri cu. Voi C11 dieu nay it anh huong vi payload chi gom o cua action dang chon (execute doc theo actionDefinitions[actionKey]), nhung nen luu y khi doc ky. |
Hình 5.2. NDV mo mac dinh o Profile / List Profiles — day du credential, dropdown, notice va cac o.
Buoc dau tien khi cau hinh la chon nhom (Action Group) roi chon action trong nhom do.
Hình 5.3. Dropdown Action Group: hai nhom Profile va Group.
Hình 5.4. Dropdown Action nhom Profile: 7 action, moi dong kem tom tat 'action nay lam gi'.
Hình 5.5. Dropdown Action nhom Group: chi mot action List Groups.
Action Group |
resource (noi bo) |
So action |
Cac action |
Profile |
profileaction |
7 |
list/get/create/open/close/update/delete profile |
Group |
groupaction |
1 |
list_groups |
GHI CHÚ · TOM TAT ACTION HIEN O BA NOI Mot cau 'action nay lam gi' (nguon ACTION_SUMMARIES) hien o: (1) mo ta duoi ten action trong dropdown; (2) dong dau notice tai lieu; (3) muc 'Chuc nang' dau trang HTML. Mot nguon, ba cho dung. |
Truoc phan tham so rieng, moi action deu co chung cac truong dieu khien MQTT sau.
Truong |
Kieu |
Mac dinh |
Y nghia |
Topic |
string (bat buoc) |
(rong) |
Kenh MQTT gui lenh. Vd GPM_LOGIN_TOPIC hoac gpm/login/request |
QoS |
options |
1 |
0=At most once, 1=At least once, 2=Exactly once |
Bat de gui kem du lieu tu node truoc sang bridge. Khi bat, hien them o danh sach field.
Hình 6.1. Include Input Items bat: hien o nhap danh sach field (vd id,name,status.detail).
Truong |
Kieu |
Y nghia |
Include Input Items |
boolean |
Bat → gui kem inputItems vao payload.inputs |
(o danh sach field) |
string (requiresDataPath) |
Danh sach field muon gui, ngan bang dau phay/xuong dong. Vd: id,name hoac profile.id |
Bat 'Wait For Response' se hien ba truong dieu khien viec cho phan hoi.
Hình 6.2. Wait For Response bat: hien Response Topic (bieu thuc), Response Timeout (ms), Parse Response As JSON.
Truong |
Kieu |
Mac dinh |
Y nghia |
Wait For Response |
boolean |
false |
Bat → node subscribe RES_<topic> va cho ket qua |
Response Topic |
string (bat buoc khi bat) |
={{...}} → RES_ + topic |
Kenh nhan phan hoi. Cho phep dat tuy y |
Response Timeout (ms) |
number |
10000 |
Thoi gian cho phan hoi toi da, don vi mili-giay |
Parse Response As JSON |
boolean |
true |
Tu chuyen phan hoi thanh JSON khi co the |
Liet ke profile GPM dang co, phan trang va loc duoc theo nhom hoac tu khoa ten. Dung de lay profile_id cho cac action sau, hoac de duyet qua toan bo profile trong mot vong lap workflow.
Anh xa HTTP:
GET /profiles
Hình 7.1. Panel tham so cua action List Profiles.
Ten o |
payloadName |
Kieu |
Mac dinh |
Y nghia |
Group ID |
group_id |
optStr |
(rong) |
Nhap ID nhom neu chi muon xem profile trong dung nhom do. |
Group (Alias) |
group |
optStr |
(rong) |
Nhap ten nhom de loc profile nhanh ma khong can nho ID. |
Page |
page |
num |
1 |
Trang muon xem. Trang dau tien la so 1. |
Per Page |
per_page |
num |
100 |
Moi trang hien thi bao nhieu profile. |
Sort |
sort |
optNum |
— |
Cach sap xep danh sach. De trong neu khong can sap xep. |
Search |
search |
optStr |
(rong) |
Tu khoa de tim profile theo ten hoac thong tin lien quan. |
GHI CHÚ · DUNG DE LAY PROFILE_ID list_profiles la buoc dau tien cua nhieu workflow: lay danh sach profile roi lap qua tung ={{$json.profile_id}} de mo/dong/cap nhat. |
Doc toan bo cau hinh cua mot profile theo ID: fingerprint, proxy, nhom, ghi chu, trang thai. Dung de kiem tra truoc khi mo, hoac de sao chep cau hinh sang profile moi.
Anh xa HTTP:
GET /profiles/{id}
Hình 8.1. Panel tham so cua action Get Profile Info.
Ten o |
payloadName |
Kieu |
Mac dinh |
Y nghia |
Profile ID |
profile_id |
str (bat buoc) |
(rong) |
ID cua profile ban muon xem chi tiet. |
Vi du gia tri:
O |
Vi du |
Profile ID |
929e187c-2da7-4ecb-b3dd-9600e211fa4f |
Khoi chay mot profile GPM va tra ve remote debugging port. Day la action MO DAU moi chuoi tu dong hoa: cac node C10/C12 phia sau dung cong nay de bam dung phien trinh duyet vua mo.
Anh xa HTTP:
GET /profiles/start/{id}
Hình 9.1. Panel tham so cua action Open Profile.
Ten o |
payloadName |
Kieu |
Mac dinh |
Y nghia |
Profile ID |
profile_id |
str (bat buoc) |
(rong) |
ID profile can mo. |
Additional Args |
addination_args |
optStr |
(rong) |
Tham so mo rong khi mo profile. Bridge nhoi --remote-debugging-port vao day neu co remote_port. |
Win Scale |
win_scale |
optNum |
— |
Ti le phong cua cua so, vd 0.8 hoac 1. |
Win Pos |
win_pos |
optStr |
(rong) |
Vi tri cua so dang x,y, vd 300,300. |
Win Size |
win_size |
optStr |
(rong) |
Kich thuoc cua so dang width,height, vd 1280,720. |
Vi du gia tri:
O |
Vi du |
Profile ID |
xgyasg1995 |
Additional Args |
--lang=vi-VN |
Win Scale |
0.8 |
Win Pos |
300,300 |
Win Size |
1280,720 |
ĐÚNG THIẾT KẾ · BUOC MO DAU CHUOI TU DONG HOA Muon co dinh cong CDP de C10/C12 attach: dat --remote-debugging-port=<port> trong Additional Args (node C11 thuan khong co o remote_port rieng). |
Hình 9.2. open_profile mo cong CDP; C10/C12 phia sau attach vao remote_port de dieu khien trinh duyet.
Dong phien trinh duyet cua mot profile dang chay. Nen goi o cuoi workflow (ke ca nhanh loi) de khong bo lai tien trinh chiem RAM tren may.
Anh xa HTTP:
GET /profiles/close/{id}
Hình 10.1. Panel tham so cua action Close Profile.
Ten o |
payloadName |
Kieu |
Mac dinh |
Y nghia |
Profile ID |
profile_id |
str (bat buoc) |
(rong) |
ID cua profile ban muon dong. |
Vi du gia tri:
O |
Vi du |
Profile ID |
xgyasg1995 |
LƯU Ý · LUON DONG O CUOI WORKFLOW Ke ca nhanh loi cung nen goi close_profile — profile mo ma khong dong se chiem RAM va co the khoa file profile. |
Liet ke cac nhom profile dang co kem ID. Chay truoc create_profile de biet chinh xac ten nhom hop le, vi GPM khong tu tao nhom moi khi tao profile.
Anh xa HTTP:
GET /groups
Action nay KHONG co tham so rieng.
GHI CHÚ · NHOM GROUP ACTION list_groups la action DUY NHAT trong nhom Group. No khong co tham so rieng — chi can Topic + (tuy chon) Wait For Response. |
Tao profile GPM moi kem toan bo tham so chong fingerprint. Nhom phai ton tai san — node KHONG tu tao nhom. Anh xa HTTP: POST /profiles/create.
Vi so tham so lon (25 o), phan panel duoc chia lam bon anh cuon.
Hình 12.1. Create Profile — dau panel: Profile Name (bat buoc), Group Name.
Hình 12.2. Create Profile — Browser Version, Random Browser Version, Raw Proxy, Startup URLs.
Hình 12.3. Create Profile — nhom cong tac fingerprint: Masked Font (bat), Noise Canvas (tat), Noise Audio Context (bat)... voi trang thai mac dinh.
Hình 12.4. Create Profile — Screen Resolution, Masked WebGL/Media, Random OS, OS, WebRTC Mode, User Agent.
Ten o |
payloadName |
Kieu |
Mac dinh |
Y nghia |
Profile Name |
profile_name |
str (bat buoc) |
(rong) |
Ten profile moi se xuat hien trong GPM. |
Group Name |
group_name |
str (bat buoc) |
All |
Ten nhom de gan. Nhom phai co san — node khong tu tao nhom. |
Browser Core |
browser_core |
str |
chromium |
Loai loi trinh duyet. Thuong de chromium. |
Browser Name |
browser_name |
str |
Chrome |
Ten trinh duyet hien thi, thuong la Chrome. |
Browser Version |
browser_version |
opt (18) |
142.0.7444.163 |
Phien ban trinh duyet dung cho fingerprint. |
Random Browser Version |
is_random_browser_version |
bool |
false |
Bat de GPM tu chon ngau nhien phien ban. |
Raw Proxy |
raw_proxy |
optStr |
(rong) |
Proxy dang host:port:user:pass. De trong neu khong dung proxy. |
Startup URLs |
startup_urls |
optStr |
(rong) |
Link se tu mo khi profile duoc chay. |
Masked Font |
is_masked_font |
bool |
true |
Che thong tin font cua may that. |
Noise Canvas |
is_noise_canvas |
bool |
false |
Them nhieu vao Canvas fingerprint. |
Noise WebGL |
is_noise_webgl |
bool |
false |
Them nhieu vao WebGL fingerprint. |
Noise Client Rect |
is_noise_client_rect |
bool |
false |
Lam nhieu thong tin Client Rect. |
Noise Audio Context |
is_noise_audio_context |
bool |
true |
Lam nhieu thong tin Audio Context. |
Random Screen |
is_random_screen |
bool |
false |
Random kich thuoc man hinh. |
Screen Resolution |
screen_resolution |
opt (6) |
1920x1080 |
Kich thuoc man hinh (dung khi khong random screen). |
Masked WebGL Data |
is_masked_webgl_data |
bool |
true |
Che du lieu WebGL that cua may. |
Masked Media Device |
is_masked_media_device |
bool |
true |
Che thong tin camera va micro that. |
Random OS |
is_random_os |
bool |
false |
Random he dieu hanh. |
OS |
os |
opt (13) |
Windows 11 |
He dieu hanh cua profile. |
WebRTC Mode |
webrtc_mode |
opt |
2 (Base on IP) |
1=Off, 2=Base on IP (khop IP proxy). |
User Agent |
user_agent |
optStr |
(rong) |
User Agent tuy chinh. De trong de dung mac dinh. |
Note |
note |
optStr |
(rong) |
Ghi chu de de nhan biet profile. |
Color |
color |
optStr |
(rong) |
Mau nhan cua profile de nhin nhanh trong danh sach. |
Auditor |
is_auditor |
bool |
false |
Bat tinh nang Auditor cua GPM (neu tai khoan ho tro). |
Extra Payload (JSON Object) |
extra_payload |
jsonOpt |
(rong) |
JSON nang cao → merge thang vao body GPM (gui field chua co o rieng). |
Hình 12.5. Phan nhom cac tham so chong fingerprint: MASKED / NOISE / RANDOM / WebRTC-proxy / dinh danh nhat quan.
MẸO · TAO PROFILE 'SACH' GIONG NGUOI THAT Dung mac dinh (masked font/audio/webgl/media = true; noise canvas/webgl = false de tranh qua bat thuong), gan proxy rieng, chon os/version nhat quan (vd Windows 11 + Chrome hop ly). webrtc_mode=2 an toan nhat khi dung proxy. |
Sua cau hinh mot profile da co. Anh xa HTTP: POST /profiles/update/{id}. Bridge yeu cau it nhat MOT field de update, neu khong se loi.
Diem dac biet: nhieu co boolean o dang ba trang thai Omit / True / False (optBool).
Hình 13.1. Update Profile — dau panel: notice giai thich Omit/True/False.
Hình 13.2. Update Profile — cac o optStr: Profile Name, Group Name, Raw Proxy... (de trong = khong doi).
Hình 13.3. Dropdown Omit/True/False mo ra — va toan bo cac o optBool cua update_profile ben duoi.
LƯU Ý · VI SAO DUNG OMIT/TRUE/FALSE O UPDATE Voi boolean thuong, khong phan biet duoc 'giu nguyen' va 'dat false'. optBool cho phep chon Omit = KHONG gui field do (giu nguyen gia tri cu), khac han voi dat False. Day la ly do update dung dropdown ba trang thai. |
Ten o |
payloadName |
Kieu |
Y nghia |
Profile ID |
profile_id |
str (bat buoc) |
ID profile ban muon cap nhat. |
Profile Name |
profile_name |
optStr |
Ten moi cua profile. |
Group Name |
group_name |
optStr |
Ten nhom moi de chuyen profile sang. |
Group ID |
group_id |
optNum |
ID nhom moi de chuyen profile sang. |
Raw Proxy |
raw_proxy |
optStr |
Proxy moi cho profile. |
Browser Core |
browser_core |
optStr |
Loi trinh duyet moi. |
Browser Name |
browser_name |
optStr |
Ten trinh duyet moi. |
Browser Version |
browser_version |
optStr |
Phien ban trinh duyet moi. |
Startup URLs |
startup_urls |
optStr |
Link moi se mo khi chay profile. |
User Agent |
user_agent |
optStr |
User Agent moi. |
Note |
note |
optStr |
Ghi chu moi cua profile. |
Color |
color |
optStr |
Mau nhan moi cua profile. |
OS |
os |
optStr |
He dieu hanh moi cua profile. |
WebRTC Mode |
webrtc_mode |
optNum |
Che do WebRTC moi. |
Random Browser Version |
is_random_browser_version |
optBool |
Bat/tat random browser version (Omit = giu nguyen). |
Masked Font |
is_masked_font |
optBool |
Bat/tat che font (Omit = giu nguyen). |
Noise Canvas |
is_noise_canvas |
optBool |
Bat/tat nhieu Canvas. |
Noise WebGL |
is_noise_webgl |
optBool |
Bat/tat nhieu WebGL. |
Noise Client Rect |
is_noise_client_rect |
optBool |
Bat/tat nhieu Client Rect. |
Noise Audio Context |
is_noise_audio_context |
optBool |
Bat/tat nhieu Audio Context. |
Random Screen |
is_random_screen |
optBool |
Bat/tat random man hinh. |
Masked WebGL Data |
is_masked_webgl_data |
optBool |
Bat/tat che du lieu WebGL. |
Masked Media Device |
is_masked_media_device |
optBool |
Bat/tat che camera va micro. |
Random OS |
is_random_os |
optBool |
Bat/tat random he dieu hanh. |
Auditor |
is_auditor |
optBool |
Bat/tat tinh nang Auditor cua GPM. |
Extra Payload (JSON Object) |
extra_payload |
jsonOpt |
JSON nang cao → merge vao body update. |
GHI CHÚ · OPTBOOL ANH XA THE NAO XUONG BRIDGE Chon Omit → o bi loai khoi payload (nua n8n khong gui) → bridge khong dung field do (giu nguyen). Chon True/False → gui gia tri boolean tuong ung. Bridge yeu cau >=1 field, neu payload rong → loi. |
Xoa han mot profile. Anh xa HTTP: GET /profiles/delete/{id}?mode=. KHONG hoan tac duoc.
Hình 14.1. Delete Profile — Profile ID (bat buoc) va Mode.
Hình 14.2. Dropdown Mode: 1. Delete database only / 2. Delete database and storage.
Ten o |
payloadName |
Kieu |
Mac dinh |
Y nghia |
Profile ID |
profile_id |
str (bat buoc) |
(rong) |
ID cua profile ban muon xoa. |
Mode |
mode |
opt |
2 |
1=Chi xoa ban ghi database; 2=Xoa ca database va thu muc du lieu tren dia (cookie, cache, dang nhap). |
NGUY HIỂM · MODE 2 XOA CA DU LIEU TREN DIA — KHONG HOAN TAC Mode 2 xoa CA thu muc du lieu profile (cookie, cache, phien dang nhap). Mat het dang nhap da luu. Chi dung mode 2 khi chac chan khong con can profile. Voi thao tac ghi nay, dedupe theo requestId bao ve khoi bi xoa hai lan neu MQTT giao trung. |
PHẦN IV
CAC TAC VU CHINH
1. Chay List Groups de biet ten nhom hop le (GPM khong tu tao nhom).
2. Chay Create Profile: dien Profile Name, Group Name (khop nhom co san), gan Raw Proxy rieng, giu mac dinh masked=true / noise canvas,webgl=false, chon OS+version nhat quan, webrtc_mode=2.
3. Bat Wait For Response de lay ket qua tao (profile_id moi) tu mqtt.response.payload.data.
4. Chay Open Profile voi profile_id vua tao; neu can cong CDP co dinh, them --remote-debugging-port=<port> vao Additional Args.
5. Node C10/C12 phia sau attach vao cong do de dieu khien trinh duyet.
6. Cuoi cung chay Close Profile (ke ca o nhanh loi).
1. Chay List Profiles (loc theo group/search, phan trang) → mang profile.
2. Dung node lap qua tung item; moi vong goi Update Profile voi ={{$json.profile_id}}.
3. O update chi dien field can doi; cac optBool khong doi thi de Omit.
4. Neu MQTT giao trung, dedupe theo requestId tu phat lai ket qua — an toan.
MẸO · LAY DU LIEU GPM O NODE SAU Dung ={{$json.mqtt.response.payload.data...}} de lay body GPM tra ve — vd danh sach profile, id profile moi tao, trang thai mo. |
PHẦN V
VAN HANH HANG NGAY
pip install -r requirements.txt python mqtt_client_gpm_login_man.py \ --broker-host 127.0.0.1 --broker-port 1883 \ --request-topics gpm/login/request \ --gpm-base-url http://127.0.0.1:16813 |
Nua n8n publish MQTT la du de gui lenh, nhung phai co bridge chay song song tren may worker thi lenh moi co tac dung len GPM.
'MQTT connected ...' + 'Subscribed request topic ...' — bridge da san sang.
'Processed action topic=... ok=true' — xu ly thanh cong mot request.
'Duplicate request detected ... replay cached response' — dedupe hoat dong (DUNG, khong phai loi).
'MQTT disconnected unexpectedly (rc=...)' — mat ket noi broker — kiem mang/credential.
Khac C10/C12, them action o C11 phai sua hai noi cho khop:
1. Nua n8n (LotusGpmLogin.node.ts): them action(...) vao ACTION_SPECS + (nen) them doc vao LIBWRAP_FUNCTION_DOCS.
2. Bridge Python: them _handle_<fn> va dang ky vao self._handlers (ca key dang group.fn lan fn), map sang endpoint GPM dung.
functionName o nua n8n phai trung key trong self._handlers cua bridge (bridge fallback action.key.split('.')[-1] neu khong khop nguyen).
PHẦN VI
AN TOAN VA BAO MAT
Credential MQTT — luu trong n8n (kieu 'mqtt'), khong go mat khau vao workflow. Broker that la 128.199.200.17:1883 (VPS ngoai).
DEBUG_PRESET_ARGS — chua credential broker THAT; khi production truyen qua CLI/ENV, giu file bridge khong ro ri (xem canh bao o Chuong 4).
delete_profile mode 2 — xoa ca du lieu tren dia, khong hoan tac. Can xac nhan ky truoc khi chay hang loat.
Cong MQTT / GPM — GPM API chi lang nghe 127.0.0.1 tren may worker; dung mo ra Internet.
NGUY HIỂM · THAO TAC KHONG HOAN TAC delete_profile (mode 2) va update_profile ghi de cau hinh la cac thao tac khong hoan tac. Luon xac nhan profile_id dung truoc khi chay, va tan dung dedupe (requestId) de tranh chay lai ngoai y muon. |
PHẦN VII
RUI RO VA SU CO
Kich ban |
Bieu hien |
Xu ly |
Khong co bridge chay |
Node publish nhung khong bao gio nhan RES_ → timeout |
Chay bridge tren may worker, dung topic khop |
Sai Topic |
Bridge khong nhan → node timeout |
Kiem Topic node = --request-topics cua bridge |
GPM chua mo / sai base-url |
Bridge tra ok:false, error ket noi HTTP |
Mo GPM, kiem --gpm-base-url = 127.0.0.1:16813 |
Nhom chua ton tai khi create |
GPM tra loi, profile khong tao |
Chay list_groups truoc, dung ten nhom co san |
update rong (khong field nao) |
Bridge nem loi 'requires at least one field' |
Dien it nhat 1 field (khong de tat ca Omit) |
MQTT giao trung |
Log 'Duplicate request' + replay cache |
Binh thuong (dedupe). Muon retry that → doi requestId |
PHẦN VIII
KHAC PHUC SU CO (BANG TRA)
Trieu chung |
Nguyen nhan co the |
Cach chua |
Node timeout khi Wait For Response |
Bridge khong chay / sai topic / GPM chet |
Kiem tuan tu: bridge → topic → GPM API |
ok:false, status_code null |
RequestException — khong noi duoc GPM |
Kiem GPM dang chay va base-url; xem error |
Nhan nham ket qua node khac |
requestId khong khop |
Bridge phai echo requestId; kiem log |
Profile tao thieu field |
Field None bi loai; extra_payload sai |
Dien du o hoac dung extra_payload JSON dung |
Cong CDP khong co dinh |
Node C11 khong co o remote_port |
Dat --remote-debugging-port trong Additional Args |
PHẦN IX
THUC HANH
Muc tieu — Lay danh sach nhom va profile trang dau.
Buoc — Group→List Groups (Wait For Response on) → doc data. Roi Profile→List Profiles (per_page=20).
Dat khi — mqtt.response.payload.data co mang nhom/profile.
Muc tieu — Tao 1 profile, mo lay cong CDP, roi dong.
Buoc — Create Profile (nhom co san, proxy rieng) → Open Profile (them --remote-debugging-port=9222) → Close Profile.
Dat khi — Open tra remote debugging port; Close ket thuc sach.
Muc tieu — Doi proxy cho nhieu profile, giu nguyen cac co fingerprint.
Buoc — List Profiles → lap → Update Profile (chi dien Raw Proxy, cac optBool de Omit).
Dat khi — Chi field proxy doi; fingerprint khong bi reset.
Muc tieu — Hieu hanh vi replay cache.
Buoc — Gui cung requestId hai lan (mo phong QoS1 trung) → xem log bridge.
Dat khi — Lan 2 hien 'replay cached response', GPM khong bi goi lai.
PHẦN PL
PHU LUC
GPM-Login la antidetect browser — tao nhieu profile voi dau van tay khac nhau de moi profile trong nhu mot thiet bi rieng, tranh bi website lien ket cac tai khoan.
is_masked_font — che font da cai → tranh lo danh tinh may that qua danh sach font.
is_noise_canvas / webgl / client_rect / audio_context — them nhieu on dinh vao cac API ma website dung de 've an' va bam ra fingerprint. Bat de moi profile co hash khac nhau.
is_masked_webgl_data / media_device — che thong tin GPU that va camera/micro that.
webrtc_mode — WebRTC co the lo IP that ke ca khi dung proxy; 2 (Base on IP) khop WebRTC voi IP proxy, 1 (Off) tat han.
os / screen_resolution / browser_version — thanh phan chinh cua UA va fingerprint; nen dong bo nhau.
raw_proxy — moi profile thuong gan 1 proxy rieng de tach IP.
Cac danh sach lua chon co dinh trong node, trung voi cac hang GPM_* trong C10 — hai ban nen giu dong bo khi cap nhat.
Hang so |
So luong |
Vai gia tri |
BROWSER_VERSION_OPTIONS |
18 |
142.0.7444.163, 139.0..., 119.0..., 100.0.4896.75 |
SCREEN_RESOLUTION_OPTIONS |
6 |
3840x2160, 2560x1440, 1920x1080, 1366x768 |
OS_OPTIONS |
13 |
Windows 11/10/8.1/..., Windows Server 2012-2019, MacOS M1 10.15.7 |
WEBRTC_MODE_OPTIONS |
2 |
1 Off, 2 Base on IP |
DELETE_PROFILE_MODE_OPTIONS |
2 |
1 Delete database only, 2 Delete database and storage |
Cac bai hoc rut ra tu qua trinh van hanh he thong Great Lotus lien quan toi profile GPM.
ID profile trong he Great Lotus la UID_xxxxxx_GPM_Profile — no la TEN o GPM (A1) dong thoi la ID o cac lop A2-A5. UUID cua GPM chi la tay nam noi bo; so khop phai xet CA hai id. Khi lam viec voi profile_id trong C11, luu y chuoi ngan (vd xgyasg1995) la ID nguoi dung tu dat, con UUID la do GPM sinh.
Gan proxy phai goi create/update TRUOC; open_profile chi mo bang proxy da luu, KHONG nhan raw_proxy. Day la bay lap lai: mo profile roi moi doi proxy se khong an.
Profile Chrome tai tu kho NAS2 (docs/tools/profile_store.py, da test tren SMB that). C11 khong cham NAS truc tiep — no chi quan ly profile trong GPM; viec keo/day profile tu NAS do worker (APP_5) lam.
Chuoi TEST_Clear_Sync_Open_LocalProfile tung gap race WinError 5/6 do spawn trung key; fix la serialize theo key. Lien quan khi dung C11 mo nhieu profile song song tren cung may worker.
Thuat ngu |
Y nghia |
NDV |
Node Detail View — cua so cau hinh node trong n8n |
Action Group / Action |
Nhom chuc nang (resource) va viec cu the (operation) |
payload |
Ban tin JSON node publish len MQTT |
bridge |
mqtt_client_gpm_login_man.py — nua 2, dich MQTT → GPM HTTP |
dedupe |
Chong xu ly trung mot requestId |
fingerprint |
Dau van tay trinh duyet — thong tin de website nhan dien thiet bi |
optBool |
Dropdown ba trang thai Omit/True/False |
remote debugging port |
Cong CDP de C10/C12 dieu khien Chrome vua mo |
Ma nguon — LotusGpmLogin.node.ts (~1878 dong), mqtt_client_gpm_login_man.py (~718 dong).
Tai lieu noi bo — Agent_Readme.md, Agent_MQTT_and_Bridge.md, Agent_Actions_Reference.md.
Anh chup — node that trong n8n (2.36.8) tren Chrome that (B35), workflow tao rieng de lam tai lieu.
Cong cu dung — docs/tools/docgen (shot_kit, annotate_kit, doc_kit) + skill /UID_04.
GHI CHÚ · MUC LUC VA SO TRANG Mo bang Microsoft Word roi bam Ctrl+A → F9 de sinh/cap nhat muc luc kem so trang. Ban PDF di kem da co muc luc dien san so trang. |