Coding

line-oa-vnc-auth

Try it

Use when LINE Official Account access requires a user-operated temporary VNC/noVNC login, MFA/QR completion, session verification, and secure teardown.

What it does

Use when LINE Official Account access requires a user-operated temporary VNC/noVNC login, MFA/QR completion, session verification, and secure teardown.

The skill document

LINE OA:透過暫時 VNC 驗證登入

Overview

此流程讓使用者在隔離的圖形化 Chromium 中自行完成 LINE Business ID 登入與 MFA,再由代理人於 LINE Official Account Manager 確認收件人、傳送指定訊息、驗證外發泡泡,最後關閉所有遠端存取服務。

帳密、MFA、QR 內容、Cookie 絕不可在聊天、命令列、截圖或日誌中要求、轉貼或保存。 使用者只能在 VNC 畫面的 LINE 網頁內輸入敏感資訊。

When to Use

  • 使用者要求從 LINE Official Account Manager 發送訊息,但遠端瀏覽器尚未登入。
  • 使用者要求透過 VNC/noVNC 自行執行 LINE 登入或二次驗證。
  • 需要在登入後,確認正確 LINE 對話與外發訊息結果。

不要用於一般個人 LINE 帳號自動化、未獲授權的帳號登入,或可由既有已登入瀏覽器安全完成的工作。

Required Components

Linux 範例套件(Debian/Ubuntu):

sudo apt-get update
sudo apt-get install -y chromium xvfb x11vnc novnc websockify cloudflared x11-apps xdotool openssl curl

確認:

command -v chromium Xvfb x11vnc websockify cloudflared xwd xdotool

若系統套件庫沒有 cloudflared,從 Cloudflare 官方 release 下載目前架構的 .deb,以 dpkg-deb -x 解壓到受限目錄,勿把未驗證的第三方安裝腳本直接 pipe 到 shell。若無 root 權限,也可將 .deb 解壓至專用目錄,並設定 LD_LIBRARY_PATH 指向其私有函式庫;每個二進位啟動前先以 ldd 檢查缺少的 shared libraries。

Secure Session Setup

  1. 讀取 LINE OA chat URL。 從受限設定檔取得 chatUrl(例如 https://chat.line.biz/U...);不要把權杖或 Cookie 寫入設定。完成條件:只取得聊天管理網址。

  2. 建立隔離工作區與瀏覽器 profile。

    BASE="$HOME/.line-oa-remote"
    install -d -m 700 "$BASE/profile" "$BASE/tmp"
    

    完成條件:profile 不與系統或代理人既有 Chrome profile 共用。

  3. 啟動本機虛擬桌面與隔離 Chromium。

    Xvfb :99 -screen 0 1280x900x24 -nolisten tcp &
    DISPLAY=:99 chromium --no-sandbox --disable-dev-shm-usage \
      --user-data-dir="$BASE/profile" --window-size=1280,900 "$CHAT_URL" &
    

    完成條件:X server 只供本機使用,Chromium 使用指定隔離 profile。

  4. 產生短效 VNC 密碼。 傳統 VNC 通常只支援前 8 個字元;產生 8 個高熵、可輸入的字元,檔案權限設為 600,並以 x11vnc -storepasswd 建立雜湊檔。只把一次性明文密碼私下傳給指定使用者;不得在日誌印出。

  5. 只綁定 loopback 的 VNC 與 noVNC。

    x11vnc -display :99 -localhost -rfbauth "$BASE/vnc-passwd" \
      -forever -shared -rfbport 5901 &
    websockify --web /usr/share/novnc 127.0.0.1:6080 127.0.0.1:5901 &
    curl -fsS http://127.0.0.1:6080/vnc.html >/dev/null
    

    完成條件:VNC 僅監聽 127.0.0.1:5901,noVNC 僅監聽 127.0.0.1:6080,本機 vnc.html 回傳 200。

  6. 最後才建立 Cloudflare Quick Tunnel。

    cloudflared tunnel --url http://127.0.0.1:6080 --no-autoupdate
    

    從輸出擷取唯一 https://*.trycloudflare.com 網址,驗證 https://…/vnc.html 回傳 200。Quick Tunnel 是公開網址,不是存取控制;VNC 一次性密碼仍為必要保護。

  7. 給使用者最小指示。 傳送 noVNC 網址及短效 VNC 密碼,請他直接在遠端瀏覽器完成 LINE 登入。明確說明:不要在聊天中傳送 LINE 密碼、MFA、QR 或恢復碼。完成條件:使用者回覆已登入,或畫面可見聊天管理頁。

Login Verification and Sending

  1. 獨立驗證登入。 確認頁面是 chat.line.biz 聊天管理介面,而非 account.line.biz 登入頁;確認目前 OA 帳號顯示正確。不可只依使用者口頭稱已登入。
  2. 確認對話目標。 在聊天列表找到使用者指定名稱,打開對話,並在 UI 看到正確名稱才可輸入。名稱模糊、重複或不存在時,停止並請使用者選擇。
  3. 只發送已核准的精確文字。 點選輸入框,輸入指定內容,再按 Send/Enter。不要夾帶簽名、測試文字或自動回覆。
  4. 驗證結果。 截取當前 X display 或檢查 DOM,確認正確對話中的最新外發泡泡內容完全一致。只回報 UI 顯示的狀態;外發泡泡表示已送出,不能推論「已送達」或「已讀」。

X11 Screenshot Fallback

當一般瀏覽器自動化無法連上該隔離 Chromium 時,可擷取 virtual display:

DISPLAY=:99 xwd -root -silent > "$BASE/line-oa.xwd"

將 XWD 轉成 PNG 後用視覺工具確認登入狀態、收件人與外發泡泡。轉換後的截圖可能包含私人聊天內容;只供本次驗證使用,完成後刪除。

可用 xdotool 互動,但每次點擊前都必須從最新截圖重新確認座標與對話名稱。避免依舊截圖或猜測座標。

Teardown (Required)

除非使用者明確要求保留本機已登入 session 以便緊接的後續工作,完成傳送與驗證後立即:

  1. 先停止 cloudflared,並驗證原 public noVNC URL 已無法使用(非 200/連線失敗)。
  2. 停止 websockify/noVNC、x11vnc、Chromium 與 Xvfb。
  3. 安全刪除 VNC 明文、雜湊密碼檔、暫存 QR、XWD/PNG 截圖與任何 temporary access artifacts。
  4. 若使用者明確要求保留登入,才可保留隔離 browser profile 與存活的本機 Chromium/Xvfb;仍必須關閉 tunnel、noVNC、VNC,刪除一次性 VNC 密碼,並說明 session 無法保證跨重啟持續。

Common Pitfalls

  1. VNC 密碼被拒絕。 多數 RFB 實作有效密碼僅 8 字元;更換為新的隨機 8 字元密碼並重啟 x11vnc。不要重用或請使用者貼回密碼。
  2. 一次性 VNC 密碼誤貼到公開/群組聊天。 立刻停止 x11vnc、作廢並刪除舊密碼檔,產生新的 8 字元高熵密碼後才可重啟;舊 tunnel URL 或舊密碼一律視為失效。不要在後續訊息引用外洩的密碼。
  3. 把 Quick Tunnel 當作安全機制。 Quick Tunnel 是公開的;必須加上高熵短效 VNC 密碼,並在完成後關閉。
  4. browser tool 與 VNC browser 是不同 session。 以 X11 screenshot/實際 UI 驗證隔離 browser 的狀態,不要假設一方登入代表另一方登入。
  5. 容器缺少 x11vnc 依賴。ldd | grep 'not found' 找出缺少 library;安裝或解壓正確相依套件後再啟動,勿把警告一概當作登入失敗。
  6. 誤稱已送達或已讀。 除非 LINE UI 明確顯示,僅能說「已看到外發訊息泡泡」。
  7. 未清理遠端桌面。 沒有使用者明確保留要求時,這是安全缺陷;必須關閉 tunnel 並刪除短效憑證。

Verification Checklist

  • 使用隔離 Chromium profile 與專用 Xvfb display
  • x11vnc/noVNC 均只綁定 loopback
  • 使用者自行在畫面內處理 LINE 帳密與 MFA
  • public noVNC URL 與 VNC 一次性密碼已測試可用
  • 已在 UI 確認正確 OA 帳號、對話名稱與訊息內容
  • 已看到對應最新外發泡泡,且報告未超過 UI 證據
  • tunnel、noVNC、VNC、browser、Xvfb 已停止(或獲明確允許保留 browser session)
  • VNC 密碼、登入畫面與聊天截圖等暫存檔已清除

Related skills

Send explicitly authorized LINE Official Account Chat messages through a persistent Chromium session; user-operated LINE login or reauthentication may use a temporary remote noVNC handoff that grants interactive browser control.

One-click deploy remote visual browser — Linux noVNC + Chromium + CDP for headless servers, Windows direct Edge/Chrome CDP takeover. AI Agent and user share...

1 installs

做自动发抖音、自动发小红书等等各大平台的网页自动化,还在被滑块、验证码、人机验证卡到任务翻车、反复失败?试试这个一键部署的远程可视化浏览器:Linux(云服务器/NAS/本地)noVNC + Chromium + CDP 三合一,Windows 本机 Edge/Chrome CDP 一键接管,让AI Agent和...

1 installs

Get OAuth tokens and manual secrets into OpenClaw agents without ever putting credentials in shell commands or config files.

49 installs

LINE (line.me). Use this skill for ANY LINE request — reading, creating, and updating data. Whenever a task involves LINE, use this skill instead of calling the API directly.

Verify and cross-sign the active Matrix device for one OpenClaw-managed account. Use when a user needs to repair trust for an OpenClaw Matrix device, confirm...

30 installs