{"allowContribute":false,"item":{"artifactHtml":"\u003cstyle\u003e*{box-sizing:border-box}\n\n  :root { --paper:#FDFBF9; --ink:#1A1412; --ink-2:#6B5E5B; --accent:#D93A2B; --accent-2:#1A7A6E; --soft:#FCECE9; --soft2:#E8F4F1; --hair:#E8DDDB; --warn:#FFF3E0; }\n  :root[data-theme=\"dark\"] { --paper:#161211; --ink:#F0E8E6; --ink-2:#B8A9A6; --accent:#FF6B5A; --accent-2:#4ECDC4; --soft:#2A1E1C; --soft2:#14302E; --hair:#2E2422; --warn:#2A2210; }\n  .doc { background:var(--paper); color:var(--ink); padding:30px 32px; font:16px/1.78 -apple-system,\"PingFang TC\",\"Noto Sans TC\",sans-serif; max-width:820px; margin:0 auto; }\n  .eyebrow { font:700 11px ui-monospace,Menlo,monospace; letter-spacing:.16em; color:var(--accent); text-transform:uppercase; }\n  h1 { font-size:26px; line-height:1.3; letter-spacing:-.02em; margin:10px 0 0; }\n  .lede { color:var(--ink-2); font-size:15px; line-height:1.7; margin:12px 0 0; max-width:64ch; }\n  .lede code { font-family:ui-monospace,Menlo,monospace; font-size:13px; background:var(--soft); padding:2px 6px; border-radius:4px; color:var(--accent); word-break:break-all; }\n  .stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:10px; margin:20px 0; }\n  .stat { background:var(--soft); border:1px solid var(--hair); border-radius:10px; padding:13px 14px; }\n  .stat.dark { background:var(--soft2); }\n  .stat .k { font:700 11px ui-monospace,Menlo,monospace; letter-spacing:.08em; color:var(--ink-2); }\n  .stat .v { font-size:18px; font-weight:800; margin-top:6px; line-height:1.2; }\n  .stat .n { font-size:12px; color:var(--ink-2); margin-top:4px; line-height:1.4; }\n  .callout { display:flex; gap:12px; padding:14px 16px; background:var(--warn); border:1px solid #F5D7A0; border-radius:10px; margin:18px 0; }\n  :root[data-theme=\"dark\"] .callout { border-color:#5A4A1A; }\n  .callout .tag { flex:none; font:800 11px ui-monospace,Menlo,monospace; letter-spacing:.08em; color:#B45309; padding-top:2px; }\n  :root[data-theme=\"dark\"] .callout .tag { color:#FBBF24; }\n  h2 { font-size:16px; letter-spacing:-.01em; margin:26px 0 10px; padding-bottom:8px; border-bottom:1px solid var(--hair); }\n  h3 { font-size:14px; margin:18px 0 8px; color:var(--ink); }\n  p { color:var(--ink-2); margin:10px 0; max-width:68ch; font-size:14.5px; line-height:1.8; }\n  ul,ol { margin:8px 0 12px 20px; color:var(--ink-2); font-size:14.5px; line-height:1.8; }\n  li { margin:4px 0; }\n  li strong { color:var(--ink); }\n  .mono { font-family:ui-monospace,Menlo,monospace; font-size:13px; }\n  table { border-collapse:collapse; width:100%; font-size:13.5px; margin:12px 0; }\n  th,td { text-align:left; padding:9px 12px; border-bottom:1px solid var(--hair); }\n  th { font:700 11px ui-monospace,Menlo,monospace; letter-spacing:.06em; color:var(--ink-2); background:var(--soft); }\n  td { color:var(--ink-2); }\n  td strong { color:var(--ink); }\n  .pill { display:inline-block; font:700 11px ui-monospace,Menlo,monospace; letter-spacing:.06em; padding:3px 8px; border-radius:999px; }\n  .pill-red { background:var(--soft); color:var(--accent); border:1px solid var(--hair); }\n  .pill-green { background:var(--soft2); color:var(--accent-2); border:1px solid #C7E8E0; }\n  :root[data-theme=\"dark\"] .pill-green { border-color:#1F4A45; }\n  .codeblock { background:#1A1A1E; color:#E8E8EA; border-radius:10px; padding:14px 16px; font:13px/1.7 ui-monospace,Menlo,monospace; overflow-x:auto; margin:12px 0; white-space:pre-wrap; word-break:break-all; }\n  :root[data-theme=\"dark\"] .codeblock { background:#0F0F12; }\n  .compare { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:12px 0; }\n  .compare .box { border:1px solid var(--hair); border-radius:10px; padding:14px; }\n  .compare .box.bad { background:var(--soft); }\n  .compare .box.good { background:var(--soft2); }\n  .box .label { font:700 11px ui-monospace,Menlo,monospace; letter-spacing:.08em; margin-bottom:6px; }\n  .box.bad .label { color:var(--accent); }\n  .box.good .label { color:var(--accent-2); }\n  .box code { font-size:12.5px; word-break:break-all; }\n  @media (max-width:640px) { .doc{padding:22px 18px;} h1{font-size:22px;} .compare{grid-template-columns:1fr;} }\n\n.wrap{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:var(--hair) transparent;touch-action:pan-x;margin:10px 0;border-radius:6px;isolation:isolate}\n.wrap::-webkit-scrollbar{height:6px}\n.wrap::-webkit-scrollbar-thumb{background:var(--hair);border-radius:3px}\n.wrap::-webkit-scrollbar-track{background:transparent}\n.wrap table{margin:0}\n.scroll-hint{font:11px ui-monospace;color:var(--ink2);opacity:.7;margin:10px 0 -4px;display:none}\n@media(max-width:640px){.doc{padding:20px 14px;overflow-x:hidden}h1{font-size:22px}.wrap{margin-left:-14px;margin-right:-14px;padding:0 14px;width:auto;max-width:none;border-radius:0}.scroll-hint{display:block}table{min-width:600px}}\n\n\u003c/style\u003e\u003cdiv class=\"doc\"\u003e\n  \u003cheader\u003e\n    \u003cdiv class=\"eyebrow\"\u003eBUG REPORT · 2026-08-19 · 內建活動「分享賺點」\u003c/div\u003e\n    \u003ch1\u003eCubeLV 平台 Bug 回報：分享活動 Threads 短連結審核被誤判為無效連結\u003c/h1\u003e\n    \u003cp class=\"lede\"\u003e使用者在內建活動「發佈到 Threads／X 或 Facebook」中，貼上 Threads 官方產生的短分享連結 \u003ccode\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e（影片貼文），在 Threads 欄位按「送出審核」卻被紅字擋下：\u003cstrong\u003e「這不是該平台的貼文連結，請確認後再貼上」\u003c/strong\u003e。同樣貼上完整網址或被輸入框截斷的網址皆無法通過。\u003c/p\u003e\n  \u003c/header\u003e\n\n  \u003csection data-cube=\"stats\" class=\"stats\"\u003e\n    \u003cdiv class=\"stat\"\u003e\u003cdiv class=\"k\"\u003e影響平台\u003c/div\u003e\u003cdiv class=\"v\"\u003eThreads\u003c/div\u003e\u003cdiv class=\"n\"\u003eX / Facebook 未驗證，疑似同樣規則\u003c/div\u003e\u003c/div\u003e\n    \u003cdiv class=\"stat\"\u003e\u003cdiv class=\"k\"\u003e嚴重程度\u003c/div\u003e\u003cdiv class=\"v\" style=\"color:var(--accent)\"\u003e🔴 中高\u003c/div\u003e\u003cdiv class=\"n\"\u003e任務無法完成，點數無法發放\u003c/div\u003e\u003c/div\u003e\n    \u003cdiv class=\"stat\"\u003e\u003cdiv class=\"k\"\u003e錯誤訊息\u003c/div\u003e\u003cdiv class=\"v\" style=\"font-size:14px\"\u003e不是該平台的貼文連結\u003c/div\u003e\u003cdiv class=\"n\"\u003e前端本地驗證直接阻擋\u003c/div\u003e\u003c/div\u003e\n    \u003cdiv class=\"stat dark\"\u003e\u003cdiv class=\"k\"\u003e連結類型\u003c/div\u003e\u003cdiv class=\"v\" style=\"font-size:14px\"\u003e/share/ 短連結\u003c/div\u003e\u003cdiv class=\"n\"\u003eThreads App 官方分享格式\u003c/div\u003e\u003c/div\u003e\n  \u003c/section\u003e\n\n  \u003cdiv class=\"callout\"\u003e\u003cspan class=\"tag\"\u003e核心判斷\u003c/span\u003e\u003cdiv style=\"font-size:14px; line-height:1.7; color:var(--ink)\"\u003e這不是使用者貼錯連結，而是\u003cstrong\u003e驗證規則過舊\u003c/strong\u003e：只認得 \u003ccode class=\"mono\"\u003ethreads.com/@帳號/post/ID\u003c/code\u003e 舊格式，不認得 Threads 自 2025 年起全面改用的 \u003ccode class=\"mono\"\u003ethreads.com/share/SHARE_TOKEN\u003c/code\u003e 短連結。使用者從 App 按「分享→複製連結」拿到的就是後者，屬於最常見的正常路徑。\u003c/div\u003e\u003c/div\u003e\n\n  \u003ch2\u003e一、現象重述\u003c/h2\u003e\n  \u003cp\u003e活動規則：\u003cspan class=\"mono\"\u003e② 發佈到 Threads、X 或 Facebook → ③ 回來貼上貼文連結，通過審核即發點\u003c/span\u003e。每平台最高 2,000 點（分享獎勵 +1,000、互動獎勵 +1,000）。\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003eThreads 欄位輸入 \u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e（輸入框顯示被截斷）→ 按「送出審核」→ 紅字「這不是該平台的貼文連結」\u003c/li\u003e\n    \u003cli\u003e再試輸入 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e（輸入框顯示為 \u003ccode class=\"mono\"\u003ehttps://www.threads.co…\u003c/code\u003e）→ 同樣被紅字阻擋\u003c/li\u003e\n    \u003cli\u003eX 欄位同期顯示為空（尚未測試），疑似同樣存在格式白名單過窄的問題\u003c/li\u003e\n  \u003c/ul\u003e\n  \u003cp\u003e使用者補充：該連結為\u003cstrong\u003e影片貼文\u003c/strong\u003e，可正常在 Threads App 內打開，但貼來 CubeLV 就被判定無效。\u003c/p\u003e\n\n  \u003ch2\u003e二、重現步驟\u003c/h2\u003e\n  \u003col\u003e\n    \u003cli\u003e打開 App 內建活動頁（底部禮物圖示入口）\u003c/li\u003e\n    \u003cli\u003e在 Threads App 找到任一貼文 → 分享 → 複製連結（會拿到 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/XXXXX/\u003c/code\u003e 格式）\u003c/li\u003e\n    \u003cli\u003e回到 CubeLV 活動頁，在「Threads」卡片輸入框貼上該連結\u003c/li\u003e\n    \u003cli\u003e點擊「送出審核」→ 立即在輸入框下方出現紅字錯誤，請求未送出\u003c/li\u003e\n  \u003c/ol\u003e\n\n  \u003ch2\u003e三、截圖證據\u003c/h2\u003e\n  \u003cdiv class=\"scroll-hint\"\u003e← 左右滑動查看完整表格 →\u003c/div\u003e\u003cdiv class=\"wrap\"\u003e\u003ctable\u003e\n    \u003cthead\u003e\u003ctr\u003e\u003cth\u003e截圖\u003c/th\u003e\u003cth\u003e輸入內容\u003c/th\u003e\u003cth\u003e結果\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\u003ctd\u003e圖 1\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e（截斷顯示）\u003c/td\u003e\u003ctd\u003e\u003cspan class=\"pill pill-red\"\u003e✕ 這不是該平台的貼文連結\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e圖 2\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003cspan class=\"pill pill-red\"\u003e✕ 同上\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\u003c/div\u003e\n  \u003cp\u003e兩次皆為前端即時驗證錯誤（未進入後端審核），且「送出審核」按鈕在 Threads 欄位為深藍可點狀態，代表已通過非空檢查，唯獨 domain/path 檢查失敗。\u003c/p\u003e\n\n  \u003ch2\u003e四、技術分析（已驗證）\u003c/h2\u003e\n  \u003ch3\u003e4.1 連結本身有效，驗證規則過舊\u003c/h3\u003e\n  \u003cp\u003e以無痕瀏覽器實際請求 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e：\u003c/p\u003e\n  \u003cdiv class=\"codeblock\"\u003e302 Redirect → https://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR?xmt=…\u0026amp;slof=1\n→ 最終頁顯示「亂晃的人不一定是迷路，但這個頁面真的走丟了」（Threads 404 頁）\u003c/div\u003e\n  \u003cp\u003e說明：\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003e302 轉址證明 share token 有效\u003c/strong\u003e：伺服器認得 \u003ccode class=\"mono\"\u003eBAZ9xV_xNU\u003c/code\u003e 並正確解析到原貼文 \u003ccode class=\"mono\"\u003e@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e，代表連結格式正確。\u003c/li\u003e\n    \u003cli\u003e最終 404 可能是貼文已刪除／設為私人／需登入才能看，或 share token 有時效；但\u003cstrong\u003e不影響格式有效性判斷\u003c/strong\u003e——驗證層不該因為貼文事後不可見就說「不是該平台的連結」。\u003c/li\u003e\n    \u003cli\u003e目前驗證很可能用正則白名單只允許 \u003ccode class=\"mono\"\u003ethreads\\.com/@[^/]+/post/\u003c/code\u003e 或 \u003ccode class=\"mono\"\u003ethreads\\.net\u003c/code\u003e，因此 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 路徑被一律誤殺。\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003cdiv class=\"compare\"\u003e\n    \u003cdiv class=\"box bad\"\u003e\n      \u003cdiv class=\"label\"\u003e✕ 目前被擋（官方主流格式）\u003c/div\u003e\n      \u003ccode\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e\u003cbr\u003e\n      \u003ccode\u003ehttps://www.threads.net/share/BAZ9xV_xNU\u003c/code\u003e\n      \u003cdiv style=\"margin-top:8px; font-size:12px; color:var(--ink-2)\"\u003eApp「複製連結」預設給的就是這個\u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"box good\"\u003e\n      \u003cdiv class=\"label\"\u003e✓ 目前可能放行（舊格式）\u003c/div\u003e\n      \u003ccode\u003ehttps://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e\u003cbr\u003e\n      \u003ccode\u003ehttps://www.threads.net/@user/post/123\u003c/code\u003e\n      \u003cdiv style=\"margin-top:8px; font-size:12px; color:var(--ink-2)\"\u003e需手動進貼文頁複製瀏覽器網址列\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\n  \u003ch3\u003e4.2 次要問題：輸入框截斷顯示\u003c/h3\u003e\n  \u003cp\u003e截圖中輸入框僅顯示 \u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e 與 \u003ccode class=\"mono\"\u003ehttps://www.threads.co\u003c/code\u003e，疑似 \u003ccode class=\"mono\"\u003eoverflow: hidden + text-overflow: ellipsis\u003c/code\u003e 或固定寬度未做 \u003ccode class=\"mono\"\u003eword-break\u003c/code\u003e，使用者無法確認自己貼的是完整連結，加劇「以為貼錯」的困惑。\u003c/p\u003e\n\n  \u003ch2\u003e五、影響範圍\u003c/h2\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003e使用者側\u003c/strong\u003e：循官方最短路徑（App 分享鈕）拿到的連結 100% 被擋，任務無法完成，點數無法發放，體驗為「活動做不了」。\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003e平台側\u003c/strong\u003e：若同時檢查 X / Facebook 也有同樣白名單過窄問題，整檔活動的轉化率會被前端驗證直接腰斬。\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003e客服成本\u003c/strong\u003e：使用者會重複嘗試、回報「我明明貼對了」。\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch2\u003e六、建議修復\u003c/h2\u003e\n  \u003ch3\u003eP0 — 放行 share 短連結（必修）\u003c/h3\u003e\n  \u003cp\u003eThreads 驗證正則新增：\u003c/p\u003e\n  \u003cdiv class=\"codeblock\"\u003e# 建議白名單（不分大小寫，允許有無 www、尾斜線、query）\n^https?://(www\\.)?threads\\.com/share/[A-Za-z0-9_-]+/?(\\?.*)?$\n^https?://(www\\.)?threads\\.net/share/[A-Za-z0-9_-]+/?(\\?.*)?$\n# 保留原有舊格式\n^https?://(www\\.)?threads\\.(com|net)/@[^/]+/post/[^/]+/?(\\?.*)?$\u003c/div\u003e\n  \u003cp\u003e後端審核時，遇到 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 應做一次 302 跟隨解析，取出真實 \u003ccode class=\"mono\"\u003e@user/post/id\u003c/code\u003e 再做貼文存在性與互動數抓取，避免前端只認字串。\u003c/p\u003e\n\n  \u003ch3\u003eP1 — 同步檢查 X / Facebook 規則\u003c/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003eX：需同時支援 \u003ccode class=\"mono\"\u003ex.com\u003c/code\u003e / \u003ccode class=\"mono\"\u003etwitter.com\u003c/code\u003e、\u003ccode class=\"mono\"\u003e/status/\u003c/code\u003e、短連結 \u003ccode class=\"mono\"\u003et.co\u003c/code\u003e 跳轉\u003c/li\u003e\n    \u003cli\u003eFacebook：需支援 \u003ccode class=\"mono\"\u003efacebook.com/share/\u003c/code\u003e、\u003ccode class=\"mono\"\u003efb.watch\u003c/code\u003e（影片）、\u003ccode class=\"mono\"\u003epermalink.php\u003c/code\u003e 等\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch3\u003eP2 — 輸入框體驗\u003c/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e輸入框改為 \u003ccode class=\"mono\"\u003etype=\"url\" + inputmode=\"url\"\u003c/code\u003e，支援長連結橫向滾動檢視\u003c/li\u003e\n    \u003cli\u003e錯誤提示改為更具體文案，例如：「偵測到 Threads 短分享連結，請確認是否為 \u003ccode class=\"mono\"\u003ethreads.com/share/…\u003c/code\u003e，系統已支援」→ 避免讓使用者以為自己貼錯平台\u003c/li\u003e\n    \u003cli\u003e送審前先做 \u003ccode class=\"mono\"\u003eHEAD\u003c/code\u003e 預檢：若 302 到正確 domain，先提示「已識別為 Threads 連結，送審中」\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch2\u003e七、供 QA 複測用資訊\u003c/h2\u003e\n  \u003cdiv class=\"scroll-hint\"\u003e← 左右滑動查看完整表格 →\u003c/div\u003e\u003cdiv class=\"wrap\"\u003e\u003ctable\u003e\n    \u003cthead\u003e\u003ctr\u003e\u003cth\u003e欄位\u003c/th\u003e\u003cth\u003e內容\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\u003ctd\u003e回報時間\u003c/td\u003e\u003ctd\u003e2026-08-19 05:10（UTC+8）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e復現連結\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e（影片貼文）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e解析後真實 ID\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003e@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e（302 目標，瀏覽器最終 404，可能已刪或需登入）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e裝置\u003c/td\u003e\u003ctd\u003eAndroid（截圖狀態列 05:10, 4G+）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e期望結果\u003c/td\u003e\u003ctd\u003e貼上 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 連結可通過前端驗證並送後端審核；審核通過先發 1,000 點，互動數達標再補發\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e實際結果\u003c/td\u003e\u003ctd\u003e前端直接紅字阻擋，無法送審\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\u003c/div\u003e\n\n  \u003cp style=\"margin-top:18px; font-size:12px; color:var(--ink-2); border-top:1px solid var(--hair); padding-top:12px;\"\u003e備註：本筆記已附兩張截圖證據與實測轉址紀錄。若需補充，可請使用者提供「在 Threads App 內打開該 share 連結後的截圖」或「瀏覽器網址列的 @user/post 完整連結」作為對照。\u003c/p\u003e\n\u003c/div\u003e","content":"\u003cdiv class=\"doc\"\u003e\n  \n\n  \u003ctable\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003cp\u003e影響平台\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003eThreads\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003eX / Facebook 未驗證，疑似同樣規則\u003c/p\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cp\u003e嚴重程度\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003e🔴 中高\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003e任務無法完成，點數無法發放\u003c/p\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cp\u003e錯誤訊息\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003e不是該平台的貼文連結\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003e前端本地驗證直接阻擋\u003c/p\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cp\u003e連結類型\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003e/share/ 短連結\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003eThreads App 官方分享格式\u003c/p\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\n\n  \u003cdiv class=\"callout\"\u003e\u003cspan class=\"tag\"\u003e核心判斷\u003c/span\u003e\u003cdiv style=\"font-size:14px; line-height:1.7; color:var(--ink)\"\u003e這不是使用者貼錯連結，而是\u003cstrong\u003e驗證規則過舊\u003c/strong\u003e：只認得 \u003ccode class=\"mono\"\u003ethreads.com/@帳號/post/ID\u003c/code\u003e 舊格式，不認得 Threads 自 2025 年起全面改用的 \u003ccode class=\"mono\"\u003ethreads.com/share/SHARE_TOKEN\u003c/code\u003e 短連結。使用者從 App 按「分享→複製連結」拿到的就是後者，屬於最常見的正常路徑。\u003c/div\u003e\u003c/div\u003e\n\n  \u003ch2\u003e一、現象重述\u003c/h2\u003e\n  \u003cp\u003e活動規則：\u003cspan class=\"mono\"\u003e② 發佈到 Threads、X 或 Facebook → ③ 回來貼上貼文連結，通過審核即發點\u003c/span\u003e。每平台最高 2,000 點（分享獎勵 +1,000、互動獎勵 +1,000）。\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003eThreads 欄位輸入 \u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e（輸入框顯示被截斷）→ 按「送出審核」→ 紅字「這不是該平台的貼文連結」\u003c/li\u003e\n    \u003cli\u003e再試輸入 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e（輸入框顯示為 \u003ccode class=\"mono\"\u003ehttps://www.threads.co…\u003c/code\u003e）→ 同樣被紅字阻擋\u003c/li\u003e\n    \u003cli\u003eX 欄位同期顯示為空（尚未測試），疑似同樣存在格式白名單過窄的問題\u003c/li\u003e\n  \u003c/ul\u003e\n  \u003cp\u003e使用者補充：該連結為\u003cstrong\u003e影片貼文\u003c/strong\u003e，可正常在 Threads App 內打開，但貼來 CubeLV 就被判定無效。\u003c/p\u003e\n\n  \u003ch2\u003e二、重現步驟\u003c/h2\u003e\n  \u003col\u003e\n    \u003cli\u003e打開 App 內建活動頁（底部禮物圖示入口）\u003c/li\u003e\n    \u003cli\u003e在 Threads App 找到任一貼文 → 分享 → 複製連結（會拿到 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/XXXXX/\u003c/code\u003e 格式）\u003c/li\u003e\n    \u003cli\u003e回到 CubeLV 活動頁，在「Threads」卡片輸入框貼上該連結\u003c/li\u003e\n    \u003cli\u003e點擊「送出審核」→ 立即在輸入框下方出現紅字錯誤，請求未送出\u003c/li\u003e\n  \u003c/ol\u003e\n\n  \u003ch2\u003e三、截圖證據\u003c/h2\u003e\n  \u003ctable\u003e\n    \u003cthead\u003e\u003ctr\u003e\u003cth\u003e截圖\u003c/th\u003e\u003cth\u003e輸入內容\u003c/th\u003e\u003cth\u003e結果\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\u003ctd\u003e圖 1\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e（截斷顯示）\u003c/td\u003e\u003ctd\u003e\u003cspan class=\"pill pill-red\"\u003e✕ 這不是該平台的貼文連結\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e圖 2\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003cspan class=\"pill pill-red\"\u003e✕ 同上\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\n  \u003cp\u003e兩次皆為前端即時驗證錯誤（未進入後端審核），且「送出審核」按鈕在 Threads 欄位為深藍可點狀態，代表已通過非空檢查，唯獨 domain/path 檢查失敗。\u003c/p\u003e\n\n  \u003ch2\u003e四、技術分析（已驗證）\u003c/h2\u003e\n  \u003ch3\u003e4.1 連結本身有效，驗證規則過舊\u003c/h3\u003e\n  \u003cp\u003e以無痕瀏覽器實際請求 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e：\u003c/p\u003e\n  \u003cdiv class=\"codeblock\"\u003e302 Redirect → https://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR?xmt=…\u0026amp;slof=1\n→ 最終頁顯示「亂晃的人不一定是迷路，但這個頁面真的走丟了」（Threads 404 頁）\u003c/div\u003e\n  \u003cp\u003e說明：\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003e302 轉址證明 share token 有效\u003c/strong\u003e：伺服器認得 \u003ccode class=\"mono\"\u003eBAZ9xV_xNU\u003c/code\u003e 並正確解析到原貼文 \u003ccode class=\"mono\"\u003e@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e，代表連結格式正確。\u003c/li\u003e\n    \u003cli\u003e最終 404 可能是貼文已刪除／設為私人／需登入才能看，或 share token 有時效；但\u003cstrong\u003e不影響格式有效性判斷\u003c/strong\u003e——驗證層不該因為貼文事後不可見就說「不是該平台的連結」。\u003c/li\u003e\n    \u003cli\u003e目前驗證很可能用正則白名單只允許 \u003ccode class=\"mono\"\u003ethreads\\.com/@[^/]+/post/\u003c/code\u003e 或 \u003ccode class=\"mono\"\u003ethreads\\.net\u003c/code\u003e，因此 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 路徑被一律誤殺。\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003cdiv class=\"compare\"\u003e\n    \u003cdiv class=\"box bad\"\u003e\n      \u003cdiv class=\"label\"\u003e✕ 目前被擋（官方主流格式）\u003c/div\u003e\n      \u003ccode\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e\u003cbr\u003e\n      \u003ccode\u003ehttps://www.threads.net/share/BAZ9xV_xNU\u003c/code\u003e\n      \u003cdiv style=\"margin-top:8px; font-size:12px; color:var(--ink-2)\"\u003eApp「複製連結」預設給的就是這個\u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"box good\"\u003e\n      \u003cdiv class=\"label\"\u003e✓ 目前可能放行（舊格式）\u003c/div\u003e\n      \u003ccode\u003ehttps://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e\u003cbr\u003e\n      \u003ccode\u003ehttps://www.threads.net/@user/post/123\u003c/code\u003e\n      \u003cdiv style=\"margin-top:8px; font-size:12px; color:var(--ink-2)\"\u003e需手動進貼文頁複製瀏覽器網址列\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\n  \u003ch3\u003e4.2 次要問題：輸入框截斷顯示\u003c/h3\u003e\n  \u003cp\u003e截圖中輸入框僅顯示 \u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e 與 \u003ccode class=\"mono\"\u003ehttps://www.threads.co\u003c/code\u003e，疑似 \u003ccode class=\"mono\"\u003eoverflow: hidden + text-overflow: ellipsis\u003c/code\u003e 或固定寬度未做 \u003ccode class=\"mono\"\u003eword-break\u003c/code\u003e，使用者無法確認自己貼的是完整連結，加劇「以為貼錯」的困惑。\u003c/p\u003e\n\n  \u003ch2\u003e五、影響範圍\u003c/h2\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003e使用者側\u003c/strong\u003e：循官方最短路徑（App 分享鈕）拿到的連結 100% 被擋，任務無法完成，點數無法發放，體驗為「活動做不了」。\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003e平台側\u003c/strong\u003e：若同時檢查 X / Facebook 也有同樣白名單過窄問題，整檔活動的轉化率會被前端驗證直接腰斬。\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003e客服成本\u003c/strong\u003e：使用者會重複嘗試、回報「我明明貼對了」。\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch2\u003e六、建議修復\u003c/h2\u003e\n  \u003ch3\u003eP0 — 放行 share 短連結（必修）\u003c/h3\u003e\n  \u003cp\u003eThreads 驗證正則新增：\u003c/p\u003e\n  \u003cdiv class=\"codeblock\"\u003e# 建議白名單（不分大小寫，允許有無 www、尾斜線、query）\n^https?://(www\\.)?threads\\.com/share/[A-Za-z0-9_-]+/?(\\?.*)?$\n^https?://(www\\.)?threads\\.net/share/[A-Za-z0-9_-]+/?(\\?.*)?$\n# 保留原有舊格式\n^https?://(www\\.)?threads\\.(com|net)/@[^/]+/post/[^/]+/?(\\?.*)?$\u003c/div\u003e\n  \u003cp\u003e後端審核時，遇到 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 應做一次 302 跟隨解析，取出真實 \u003ccode class=\"mono\"\u003e@user/post/id\u003c/code\u003e 再做貼文存在性與互動數抓取，避免前端只認字串。\u003c/p\u003e\n\n  \u003ch3\u003eP1 — 同步檢查 X / Facebook 規則\u003c/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003eX：需同時支援 \u003ccode class=\"mono\"\u003ex.com\u003c/code\u003e / \u003ccode class=\"mono\"\u003etwitter.com\u003c/code\u003e、\u003ccode class=\"mono\"\u003e/status/\u003c/code\u003e、短連結 \u003ccode class=\"mono\"\u003et.co\u003c/code\u003e 跳轉\u003c/li\u003e\n    \u003cli\u003eFacebook：需支援 \u003ccode class=\"mono\"\u003efacebook.com/share/\u003c/code\u003e、\u003ccode class=\"mono\"\u003efb.watch\u003c/code\u003e（影片）、\u003ccode class=\"mono\"\u003epermalink.php\u003c/code\u003e 等\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch3\u003eP2 — 輸入框體驗\u003c/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e輸入框改為 \u003ccode class=\"mono\"\u003etype=\"url\" + inputmode=\"url\"\u003c/code\u003e，支援長連結橫向滾動檢視\u003c/li\u003e\n    \u003cli\u003e錯誤提示改為更具體文案，例如：「偵測到 Threads 短分享連結，請確認是否為 \u003ccode class=\"mono\"\u003ethreads.com/share/…\u003c/code\u003e，系統已支援」→ 避免讓使用者以為自己貼錯平台\u003c/li\u003e\n    \u003cli\u003e送審前先做 \u003ccode class=\"mono\"\u003eHEAD\u003c/code\u003e 預檢：若 302 到正確 domain，先提示「已識別為 Threads 連結，送審中」\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch2\u003e七、供 QA 複測用資訊\u003c/h2\u003e\n  \u003ctable\u003e\n    \u003cthead\u003e\u003ctr\u003e\u003cth\u003e欄位\u003c/th\u003e\u003cth\u003e內容\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\u003ctd\u003e回報時間\u003c/td\u003e\u003ctd\u003e2026-08-19 05:10（UTC+8）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e復現連結\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e（影片貼文）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e解析後真實 ID\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003e@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e（302 目標，瀏覽器最終 404，可能已刪或需登入）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e裝置\u003c/td\u003e\u003ctd\u003eAndroid（截圖狀態列 05:10, 4G+）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e期望結果\u003c/td\u003e\u003ctd\u003e貼上 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 連結可通過前端驗證並送後端審核；審核通過先發 1,000 點，互動數達標再補發\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e實際結果\u003c/td\u003e\u003ctd\u003e前端直接紅字阻擋，無法送審\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\n\n  \u003cp style=\"margin-top:18px; font-size:12px; color:var(--ink-2); border-top:1px solid var(--hair); padding-top:12px;\"\u003e備註：本筆記已附兩張截圖證據與實測轉址紀錄。若需補充，可請使用者提供「在 Threads App 內打開該 share 連結後的截圖」或「瀏覽器網址列的 @user/post 完整連結」作為對照。\u003c/p\u003e\n\u003c/div\u003e","createdAt":1787087637390,"deletedAt":null,"displayMode":"artifact","id":"0e578f87a92f3687f18ddc1e","isNew":false,"isPublic":true,"itemType":"NOTE","name":"CubeLV 平台 Bug 回報：分享活動 Threads 短連結審核被誤判為無效連結","parents":{"4465d0a863da5d1b345d888c":1787087637390},"preParentID":null,"updatedAt":1788024625209,"updatedBy":{"userId":"6a3dcfc700e9b9fd06d5ef","userName":"蔡其樺"},"version":43,"websiteContent":"[{\"originUrl\":\"https://www.threads.com/share/BAZ9xV_xNU/\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.co…\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.com/share/XXXXX/\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR?xmt=…\u0026amp;slof=1\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.net/share/BAZ9xV_xNU\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.net/@user/post/123\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.co\",\"title\":null,\"content\":null,\"imageUrl\":null}]"},"ownerName":"蔡其樺","subtree":[{"artifactHtml":"\u003cstyle\u003e*{box-sizing:border-box}\n\n  :root { --paper:#FDFBF9; --ink:#1A1412; --ink-2:#6B5E5B; --accent:#D93A2B; --accent-2:#1A7A6E; --soft:#FCECE9; --soft2:#E8F4F1; --hair:#E8DDDB; --warn:#FFF3E0; }\n  :root[data-theme=\"dark\"] { --paper:#161211; --ink:#F0E8E6; --ink-2:#B8A9A6; --accent:#FF6B5A; --accent-2:#4ECDC4; --soft:#2A1E1C; --soft2:#14302E; --hair:#2E2422; --warn:#2A2210; }\n  .doc { background:var(--paper); color:var(--ink); padding:30px 32px; font:16px/1.78 -apple-system,\"PingFang TC\",\"Noto Sans TC\",sans-serif; max-width:820px; margin:0 auto; }\n  .eyebrow { font:700 11px ui-monospace,Menlo,monospace; letter-spacing:.16em; color:var(--accent); text-transform:uppercase; }\n  h1 { font-size:26px; line-height:1.3; letter-spacing:-.02em; margin:10px 0 0; }\n  .lede { color:var(--ink-2); font-size:15px; line-height:1.7; margin:12px 0 0; max-width:64ch; }\n  .lede code { font-family:ui-monospace,Menlo,monospace; font-size:13px; background:var(--soft); padding:2px 6px; border-radius:4px; color:var(--accent); word-break:break-all; }\n  .stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:10px; margin:20px 0; }\n  .stat { background:var(--soft); border:1px solid var(--hair); border-radius:10px; padding:13px 14px; }\n  .stat.dark { background:var(--soft2); }\n  .stat .k { font:700 11px ui-monospace,Menlo,monospace; letter-spacing:.08em; color:var(--ink-2); }\n  .stat .v { font-size:18px; font-weight:800; margin-top:6px; line-height:1.2; }\n  .stat .n { font-size:12px; color:var(--ink-2); margin-top:4px; line-height:1.4; }\n  .callout { display:flex; gap:12px; padding:14px 16px; background:var(--warn); border:1px solid #F5D7A0; border-radius:10px; margin:18px 0; }\n  :root[data-theme=\"dark\"] .callout { border-color:#5A4A1A; }\n  .callout .tag { flex:none; font:800 11px ui-monospace,Menlo,monospace; letter-spacing:.08em; color:#B45309; padding-top:2px; }\n  :root[data-theme=\"dark\"] .callout .tag { color:#FBBF24; }\n  h2 { font-size:16px; letter-spacing:-.01em; margin:26px 0 10px; padding-bottom:8px; border-bottom:1px solid var(--hair); }\n  h3 { font-size:14px; margin:18px 0 8px; color:var(--ink); }\n  p { color:var(--ink-2); margin:10px 0; max-width:68ch; font-size:14.5px; line-height:1.8; }\n  ul,ol { margin:8px 0 12px 20px; color:var(--ink-2); font-size:14.5px; line-height:1.8; }\n  li { margin:4px 0; }\n  li strong { color:var(--ink); }\n  .mono { font-family:ui-monospace,Menlo,monospace; font-size:13px; }\n  table { border-collapse:collapse; width:100%; font-size:13.5px; margin:12px 0; }\n  th,td { text-align:left; padding:9px 12px; border-bottom:1px solid var(--hair); }\n  th { font:700 11px ui-monospace,Menlo,monospace; letter-spacing:.06em; color:var(--ink-2); background:var(--soft); }\n  td { color:var(--ink-2); }\n  td strong { color:var(--ink); }\n  .pill { display:inline-block; font:700 11px ui-monospace,Menlo,monospace; letter-spacing:.06em; padding:3px 8px; border-radius:999px; }\n  .pill-red { background:var(--soft); color:var(--accent); border:1px solid var(--hair); }\n  .pill-green { background:var(--soft2); color:var(--accent-2); border:1px solid #C7E8E0; }\n  :root[data-theme=\"dark\"] .pill-green { border-color:#1F4A45; }\n  .codeblock { background:#1A1A1E; color:#E8E8EA; border-radius:10px; padding:14px 16px; font:13px/1.7 ui-monospace,Menlo,monospace; overflow-x:auto; margin:12px 0; white-space:pre-wrap; word-break:break-all; }\n  :root[data-theme=\"dark\"] .codeblock { background:#0F0F12; }\n  .compare { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:12px 0; }\n  .compare .box { border:1px solid var(--hair); border-radius:10px; padding:14px; }\n  .compare .box.bad { background:var(--soft); }\n  .compare .box.good { background:var(--soft2); }\n  .box .label { font:700 11px ui-monospace,Menlo,monospace; letter-spacing:.08em; margin-bottom:6px; }\n  .box.bad .label { color:var(--accent); }\n  .box.good .label { color:var(--accent-2); }\n  .box code { font-size:12.5px; word-break:break-all; }\n  @media (max-width:640px) { .doc{padding:22px 18px;} h1{font-size:22px;} .compare{grid-template-columns:1fr;} }\n\n.wrap{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:var(--hair) transparent;touch-action:pan-x;margin:10px 0;border-radius:6px;isolation:isolate}\n.wrap::-webkit-scrollbar{height:6px}\n.wrap::-webkit-scrollbar-thumb{background:var(--hair);border-radius:3px}\n.wrap::-webkit-scrollbar-track{background:transparent}\n.wrap table{margin:0}\n.scroll-hint{font:11px ui-monospace;color:var(--ink2);opacity:.7;margin:10px 0 -4px;display:none}\n@media(max-width:640px){.doc{padding:20px 14px;overflow-x:hidden}h1{font-size:22px}.wrap{margin-left:-14px;margin-right:-14px;padding:0 14px;width:auto;max-width:none;border-radius:0}.scroll-hint{display:block}table{min-width:600px}}\n\n\u003c/style\u003e\u003cdiv class=\"doc\"\u003e\n  \u003cheader\u003e\n    \u003cdiv class=\"eyebrow\"\u003eBUG REPORT · 2026-08-19 · 內建活動「分享賺點」\u003c/div\u003e\n    \u003ch1\u003eCubeLV 平台 Bug 回報：分享活動 Threads 短連結審核被誤判為無效連結\u003c/h1\u003e\n    \u003cp class=\"lede\"\u003e使用者在內建活動「發佈到 Threads／X 或 Facebook」中，貼上 Threads 官方產生的短分享連結 \u003ccode\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e（影片貼文），在 Threads 欄位按「送出審核」卻被紅字擋下：\u003cstrong\u003e「這不是該平台的貼文連結，請確認後再貼上」\u003c/strong\u003e。同樣貼上完整網址或被輸入框截斷的網址皆無法通過。\u003c/p\u003e\n  \u003c/header\u003e\n\n  \u003csection data-cube=\"stats\" class=\"stats\"\u003e\n    \u003cdiv class=\"stat\"\u003e\u003cdiv class=\"k\"\u003e影響平台\u003c/div\u003e\u003cdiv class=\"v\"\u003eThreads\u003c/div\u003e\u003cdiv class=\"n\"\u003eX / Facebook 未驗證，疑似同樣規則\u003c/div\u003e\u003c/div\u003e\n    \u003cdiv class=\"stat\"\u003e\u003cdiv class=\"k\"\u003e嚴重程度\u003c/div\u003e\u003cdiv class=\"v\" style=\"color:var(--accent)\"\u003e🔴 中高\u003c/div\u003e\u003cdiv class=\"n\"\u003e任務無法完成，點數無法發放\u003c/div\u003e\u003c/div\u003e\n    \u003cdiv class=\"stat\"\u003e\u003cdiv class=\"k\"\u003e錯誤訊息\u003c/div\u003e\u003cdiv class=\"v\" style=\"font-size:14px\"\u003e不是該平台的貼文連結\u003c/div\u003e\u003cdiv class=\"n\"\u003e前端本地驗證直接阻擋\u003c/div\u003e\u003c/div\u003e\n    \u003cdiv class=\"stat dark\"\u003e\u003cdiv class=\"k\"\u003e連結類型\u003c/div\u003e\u003cdiv class=\"v\" style=\"font-size:14px\"\u003e/share/ 短連結\u003c/div\u003e\u003cdiv class=\"n\"\u003eThreads App 官方分享格式\u003c/div\u003e\u003c/div\u003e\n  \u003c/section\u003e\n\n  \u003cdiv class=\"callout\"\u003e\u003cspan class=\"tag\"\u003e核心判斷\u003c/span\u003e\u003cdiv style=\"font-size:14px; line-height:1.7; color:var(--ink)\"\u003e這不是使用者貼錯連結，而是\u003cstrong\u003e驗證規則過舊\u003c/strong\u003e：只認得 \u003ccode class=\"mono\"\u003ethreads.com/@帳號/post/ID\u003c/code\u003e 舊格式，不認得 Threads 自 2025 年起全面改用的 \u003ccode class=\"mono\"\u003ethreads.com/share/SHARE_TOKEN\u003c/code\u003e 短連結。使用者從 App 按「分享→複製連結」拿到的就是後者，屬於最常見的正常路徑。\u003c/div\u003e\u003c/div\u003e\n\n  \u003ch2\u003e一、現象重述\u003c/h2\u003e\n  \u003cp\u003e活動規則：\u003cspan class=\"mono\"\u003e② 發佈到 Threads、X 或 Facebook → ③ 回來貼上貼文連結，通過審核即發點\u003c/span\u003e。每平台最高 2,000 點（分享獎勵 +1,000、互動獎勵 +1,000）。\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003eThreads 欄位輸入 \u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e（輸入框顯示被截斷）→ 按「送出審核」→ 紅字「這不是該平台的貼文連結」\u003c/li\u003e\n    \u003cli\u003e再試輸入 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e（輸入框顯示為 \u003ccode class=\"mono\"\u003ehttps://www.threads.co…\u003c/code\u003e）→ 同樣被紅字阻擋\u003c/li\u003e\n    \u003cli\u003eX 欄位同期顯示為空（尚未測試），疑似同樣存在格式白名單過窄的問題\u003c/li\u003e\n  \u003c/ul\u003e\n  \u003cp\u003e使用者補充：該連結為\u003cstrong\u003e影片貼文\u003c/strong\u003e，可正常在 Threads App 內打開，但貼來 CubeLV 就被判定無效。\u003c/p\u003e\n\n  \u003ch2\u003e二、重現步驟\u003c/h2\u003e\n  \u003col\u003e\n    \u003cli\u003e打開 App 內建活動頁（底部禮物圖示入口）\u003c/li\u003e\n    \u003cli\u003e在 Threads App 找到任一貼文 → 分享 → 複製連結（會拿到 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/XXXXX/\u003c/code\u003e 格式）\u003c/li\u003e\n    \u003cli\u003e回到 CubeLV 活動頁，在「Threads」卡片輸入框貼上該連結\u003c/li\u003e\n    \u003cli\u003e點擊「送出審核」→ 立即在輸入框下方出現紅字錯誤，請求未送出\u003c/li\u003e\n  \u003c/ol\u003e\n\n  \u003ch2\u003e三、截圖證據\u003c/h2\u003e\n  \u003cdiv class=\"scroll-hint\"\u003e← 左右滑動查看完整表格 →\u003c/div\u003e\u003cdiv class=\"wrap\"\u003e\u003ctable\u003e\n    \u003cthead\u003e\u003ctr\u003e\u003cth\u003e截圖\u003c/th\u003e\u003cth\u003e輸入內容\u003c/th\u003e\u003cth\u003e結果\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\u003ctd\u003e圖 1\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e（截斷顯示）\u003c/td\u003e\u003ctd\u003e\u003cspan class=\"pill pill-red\"\u003e✕ 這不是該平台的貼文連結\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e圖 2\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003cspan class=\"pill pill-red\"\u003e✕ 同上\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\u003c/div\u003e\n  \u003cp\u003e兩次皆為前端即時驗證錯誤（未進入後端審核），且「送出審核」按鈕在 Threads 欄位為深藍可點狀態，代表已通過非空檢查，唯獨 domain/path 檢查失敗。\u003c/p\u003e\n\n  \u003ch2\u003e四、技術分析（已驗證）\u003c/h2\u003e\n  \u003ch3\u003e4.1 連結本身有效，驗證規則過舊\u003c/h3\u003e\n  \u003cp\u003e以無痕瀏覽器實際請求 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e：\u003c/p\u003e\n  \u003cdiv class=\"codeblock\"\u003e302 Redirect → https://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR?xmt=…\u0026amp;slof=1\n→ 最終頁顯示「亂晃的人不一定是迷路，但這個頁面真的走丟了」（Threads 404 頁）\u003c/div\u003e\n  \u003cp\u003e說明：\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003e302 轉址證明 share token 有效\u003c/strong\u003e：伺服器認得 \u003ccode class=\"mono\"\u003eBAZ9xV_xNU\u003c/code\u003e 並正確解析到原貼文 \u003ccode class=\"mono\"\u003e@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e，代表連結格式正確。\u003c/li\u003e\n    \u003cli\u003e最終 404 可能是貼文已刪除／設為私人／需登入才能看，或 share token 有時效；但\u003cstrong\u003e不影響格式有效性判斷\u003c/strong\u003e——驗證層不該因為貼文事後不可見就說「不是該平台的連結」。\u003c/li\u003e\n    \u003cli\u003e目前驗證很可能用正則白名單只允許 \u003ccode class=\"mono\"\u003ethreads\\.com/@[^/]+/post/\u003c/code\u003e 或 \u003ccode class=\"mono\"\u003ethreads\\.net\u003c/code\u003e，因此 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 路徑被一律誤殺。\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003cdiv class=\"compare\"\u003e\n    \u003cdiv class=\"box bad\"\u003e\n      \u003cdiv class=\"label\"\u003e✕ 目前被擋（官方主流格式）\u003c/div\u003e\n      \u003ccode\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e\u003cbr\u003e\n      \u003ccode\u003ehttps://www.threads.net/share/BAZ9xV_xNU\u003c/code\u003e\n      \u003cdiv style=\"margin-top:8px; font-size:12px; color:var(--ink-2)\"\u003eApp「複製連結」預設給的就是這個\u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"box good\"\u003e\n      \u003cdiv class=\"label\"\u003e✓ 目前可能放行（舊格式）\u003c/div\u003e\n      \u003ccode\u003ehttps://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e\u003cbr\u003e\n      \u003ccode\u003ehttps://www.threads.net/@user/post/123\u003c/code\u003e\n      \u003cdiv style=\"margin-top:8px; font-size:12px; color:var(--ink-2)\"\u003e需手動進貼文頁複製瀏覽器網址列\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\n  \u003ch3\u003e4.2 次要問題：輸入框截斷顯示\u003c/h3\u003e\n  \u003cp\u003e截圖中輸入框僅顯示 \u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e 與 \u003ccode class=\"mono\"\u003ehttps://www.threads.co\u003c/code\u003e，疑似 \u003ccode class=\"mono\"\u003eoverflow: hidden + text-overflow: ellipsis\u003c/code\u003e 或固定寬度未做 \u003ccode class=\"mono\"\u003eword-break\u003c/code\u003e，使用者無法確認自己貼的是完整連結，加劇「以為貼錯」的困惑。\u003c/p\u003e\n\n  \u003ch2\u003e五、影響範圍\u003c/h2\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003e使用者側\u003c/strong\u003e：循官方最短路徑（App 分享鈕）拿到的連結 100% 被擋，任務無法完成，點數無法發放，體驗為「活動做不了」。\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003e平台側\u003c/strong\u003e：若同時檢查 X / Facebook 也有同樣白名單過窄問題，整檔活動的轉化率會被前端驗證直接腰斬。\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003e客服成本\u003c/strong\u003e：使用者會重複嘗試、回報「我明明貼對了」。\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch2\u003e六、建議修復\u003c/h2\u003e\n  \u003ch3\u003eP0 — 放行 share 短連結（必修）\u003c/h3\u003e\n  \u003cp\u003eThreads 驗證正則新增：\u003c/p\u003e\n  \u003cdiv class=\"codeblock\"\u003e# 建議白名單（不分大小寫，允許有無 www、尾斜線、query）\n^https?://(www\\.)?threads\\.com/share/[A-Za-z0-9_-]+/?(\\?.*)?$\n^https?://(www\\.)?threads\\.net/share/[A-Za-z0-9_-]+/?(\\?.*)?$\n# 保留原有舊格式\n^https?://(www\\.)?threads\\.(com|net)/@[^/]+/post/[^/]+/?(\\?.*)?$\u003c/div\u003e\n  \u003cp\u003e後端審核時，遇到 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 應做一次 302 跟隨解析，取出真實 \u003ccode class=\"mono\"\u003e@user/post/id\u003c/code\u003e 再做貼文存在性與互動數抓取，避免前端只認字串。\u003c/p\u003e\n\n  \u003ch3\u003eP1 — 同步檢查 X / Facebook 規則\u003c/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003eX：需同時支援 \u003ccode class=\"mono\"\u003ex.com\u003c/code\u003e / \u003ccode class=\"mono\"\u003etwitter.com\u003c/code\u003e、\u003ccode class=\"mono\"\u003e/status/\u003c/code\u003e、短連結 \u003ccode class=\"mono\"\u003et.co\u003c/code\u003e 跳轉\u003c/li\u003e\n    \u003cli\u003eFacebook：需支援 \u003ccode class=\"mono\"\u003efacebook.com/share/\u003c/code\u003e、\u003ccode class=\"mono\"\u003efb.watch\u003c/code\u003e（影片）、\u003ccode class=\"mono\"\u003epermalink.php\u003c/code\u003e 等\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch3\u003eP2 — 輸入框體驗\u003c/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e輸入框改為 \u003ccode class=\"mono\"\u003etype=\"url\" + inputmode=\"url\"\u003c/code\u003e，支援長連結橫向滾動檢視\u003c/li\u003e\n    \u003cli\u003e錯誤提示改為更具體文案，例如：「偵測到 Threads 短分享連結，請確認是否為 \u003ccode class=\"mono\"\u003ethreads.com/share/…\u003c/code\u003e，系統已支援」→ 避免讓使用者以為自己貼錯平台\u003c/li\u003e\n    \u003cli\u003e送審前先做 \u003ccode class=\"mono\"\u003eHEAD\u003c/code\u003e 預檢：若 302 到正確 domain，先提示「已識別為 Threads 連結，送審中」\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch2\u003e七、供 QA 複測用資訊\u003c/h2\u003e\n  \u003cdiv class=\"scroll-hint\"\u003e← 左右滑動查看完整表格 →\u003c/div\u003e\u003cdiv class=\"wrap\"\u003e\u003ctable\u003e\n    \u003cthead\u003e\u003ctr\u003e\u003cth\u003e欄位\u003c/th\u003e\u003cth\u003e內容\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\u003ctd\u003e回報時間\u003c/td\u003e\u003ctd\u003e2026-08-19 05:10（UTC+8）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e復現連結\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e（影片貼文）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e解析後真實 ID\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003e@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e（302 目標，瀏覽器最終 404，可能已刪或需登入）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e裝置\u003c/td\u003e\u003ctd\u003eAndroid（截圖狀態列 05:10, 4G+）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e期望結果\u003c/td\u003e\u003ctd\u003e貼上 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 連結可通過前端驗證並送後端審核；審核通過先發 1,000 點，互動數達標再補發\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e實際結果\u003c/td\u003e\u003ctd\u003e前端直接紅字阻擋，無法送審\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\u003c/div\u003e\n\n  \u003cp style=\"margin-top:18px; font-size:12px; color:var(--ink-2); border-top:1px solid var(--hair); padding-top:12px;\"\u003e備註：本筆記已附兩張截圖證據與實測轉址紀錄。若需補充，可請使用者提供「在 Threads App 內打開該 share 連結後的截圖」或「瀏覽器網址列的 @user/post 完整連結」作為對照。\u003c/p\u003e\n\u003c/div\u003e","content":"\u003cdiv class=\"doc\"\u003e\n  \n\n  \u003ctable\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003cp\u003e影響平台\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003eThreads\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003eX / Facebook 未驗證，疑似同樣規則\u003c/p\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cp\u003e嚴重程度\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003e🔴 中高\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003e任務無法完成，點數無法發放\u003c/p\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cp\u003e錯誤訊息\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003e不是該平台的貼文連結\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003e前端本地驗證直接阻擋\u003c/p\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cp\u003e連結類型\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003e/share/ 短連結\u003c/p\u003e\u003c/td\u003e\u003ctd\u003e\u003cp\u003eThreads App 官方分享格式\u003c/p\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\n\n  \u003cdiv class=\"callout\"\u003e\u003cspan class=\"tag\"\u003e核心判斷\u003c/span\u003e\u003cdiv style=\"font-size:14px; line-height:1.7; color:var(--ink)\"\u003e這不是使用者貼錯連結，而是\u003cstrong\u003e驗證規則過舊\u003c/strong\u003e：只認得 \u003ccode class=\"mono\"\u003ethreads.com/@帳號/post/ID\u003c/code\u003e 舊格式，不認得 Threads 自 2025 年起全面改用的 \u003ccode class=\"mono\"\u003ethreads.com/share/SHARE_TOKEN\u003c/code\u003e 短連結。使用者從 App 按「分享→複製連結」拿到的就是後者，屬於最常見的正常路徑。\u003c/div\u003e\u003c/div\u003e\n\n  \u003ch2\u003e一、現象重述\u003c/h2\u003e\n  \u003cp\u003e活動規則：\u003cspan class=\"mono\"\u003e② 發佈到 Threads、X 或 Facebook → ③ 回來貼上貼文連結，通過審核即發點\u003c/span\u003e。每平台最高 2,000 點（分享獎勵 +1,000、互動獎勵 +1,000）。\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003eThreads 欄位輸入 \u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e（輸入框顯示被截斷）→ 按「送出審核」→ 紅字「這不是該平台的貼文連結」\u003c/li\u003e\n    \u003cli\u003e再試輸入 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e（輸入框顯示為 \u003ccode class=\"mono\"\u003ehttps://www.threads.co…\u003c/code\u003e）→ 同樣被紅字阻擋\u003c/li\u003e\n    \u003cli\u003eX 欄位同期顯示為空（尚未測試），疑似同樣存在格式白名單過窄的問題\u003c/li\u003e\n  \u003c/ul\u003e\n  \u003cp\u003e使用者補充：該連結為\u003cstrong\u003e影片貼文\u003c/strong\u003e，可正常在 Threads App 內打開，但貼來 CubeLV 就被判定無效。\u003c/p\u003e\n\n  \u003ch2\u003e二、重現步驟\u003c/h2\u003e\n  \u003col\u003e\n    \u003cli\u003e打開 App 內建活動頁（底部禮物圖示入口）\u003c/li\u003e\n    \u003cli\u003e在 Threads App 找到任一貼文 → 分享 → 複製連結（會拿到 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/XXXXX/\u003c/code\u003e 格式）\u003c/li\u003e\n    \u003cli\u003e回到 CubeLV 活動頁，在「Threads」卡片輸入框貼上該連結\u003c/li\u003e\n    \u003cli\u003e點擊「送出審核」→ 立即在輸入框下方出現紅字錯誤，請求未送出\u003c/li\u003e\n  \u003c/ol\u003e\n\n  \u003ch2\u003e三、截圖證據\u003c/h2\u003e\n  \u003ctable\u003e\n    \u003cthead\u003e\u003ctr\u003e\u003cth\u003e截圖\u003c/th\u003e\u003cth\u003e輸入內容\u003c/th\u003e\u003cth\u003e結果\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\u003ctd\u003e圖 1\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e（截斷顯示）\u003c/td\u003e\u003ctd\u003e\u003cspan class=\"pill pill-red\"\u003e✕ 這不是該平台的貼文連結\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e圖 2\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003cspan class=\"pill pill-red\"\u003e✕ 同上\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\n  \u003cp\u003e兩次皆為前端即時驗證錯誤（未進入後端審核），且「送出審核」按鈕在 Threads 欄位為深藍可點狀態，代表已通過非空檢查，唯獨 domain/path 檢查失敗。\u003c/p\u003e\n\n  \u003ch2\u003e四、技術分析（已驗證）\u003c/h2\u003e\n  \u003ch3\u003e4.1 連結本身有效，驗證規則過舊\u003c/h3\u003e\n  \u003cp\u003e以無痕瀏覽器實際請求 \u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e：\u003c/p\u003e\n  \u003cdiv class=\"codeblock\"\u003e302 Redirect → https://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR?xmt=…\u0026amp;slof=1\n→ 最終頁顯示「亂晃的人不一定是迷路，但這個頁面真的走丟了」（Threads 404 頁）\u003c/div\u003e\n  \u003cp\u003e說明：\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003e302 轉址證明 share token 有效\u003c/strong\u003e：伺服器認得 \u003ccode class=\"mono\"\u003eBAZ9xV_xNU\u003c/code\u003e 並正確解析到原貼文 \u003ccode class=\"mono\"\u003e@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e，代表連結格式正確。\u003c/li\u003e\n    \u003cli\u003e最終 404 可能是貼文已刪除／設為私人／需登入才能看，或 share token 有時效；但\u003cstrong\u003e不影響格式有效性判斷\u003c/strong\u003e——驗證層不該因為貼文事後不可見就說「不是該平台的連結」。\u003c/li\u003e\n    \u003cli\u003e目前驗證很可能用正則白名單只允許 \u003ccode class=\"mono\"\u003ethreads\\.com/@[^/]+/post/\u003c/code\u003e 或 \u003ccode class=\"mono\"\u003ethreads\\.net\u003c/code\u003e，因此 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 路徑被一律誤殺。\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003cdiv class=\"compare\"\u003e\n    \u003cdiv class=\"box bad\"\u003e\n      \u003cdiv class=\"label\"\u003e✕ 目前被擋（官方主流格式）\u003c/div\u003e\n      \u003ccode\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e\u003cbr\u003e\n      \u003ccode\u003ehttps://www.threads.net/share/BAZ9xV_xNU\u003c/code\u003e\n      \u003cdiv style=\"margin-top:8px; font-size:12px; color:var(--ink-2)\"\u003eApp「複製連結」預設給的就是這個\u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"box good\"\u003e\n      \u003cdiv class=\"label\"\u003e✓ 目前可能放行（舊格式）\u003c/div\u003e\n      \u003ccode\u003ehttps://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e\u003cbr\u003e\n      \u003ccode\u003ehttps://www.threads.net/@user/post/123\u003c/code\u003e\n      \u003cdiv style=\"margin-top:8px; font-size:12px; color:var(--ink-2)\"\u003e需手動進貼文頁複製瀏覽器網址列\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\n  \u003ch3\u003e4.2 次要問題：輸入框截斷顯示\u003c/h3\u003e\n  \u003cp\u003e截圖中輸入框僅顯示 \u003ccode class=\"mono\"\u003en/share/BAZ9xV_xNU/\u003c/code\u003e 與 \u003ccode class=\"mono\"\u003ehttps://www.threads.co\u003c/code\u003e，疑似 \u003ccode class=\"mono\"\u003eoverflow: hidden + text-overflow: ellipsis\u003c/code\u003e 或固定寬度未做 \u003ccode class=\"mono\"\u003eword-break\u003c/code\u003e，使用者無法確認自己貼的是完整連結，加劇「以為貼錯」的困惑。\u003c/p\u003e\n\n  \u003ch2\u003e五、影響範圍\u003c/h2\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003e使用者側\u003c/strong\u003e：循官方最短路徑（App 分享鈕）拿到的連結 100% 被擋，任務無法完成，點數無法發放，體驗為「活動做不了」。\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003e平台側\u003c/strong\u003e：若同時檢查 X / Facebook 也有同樣白名單過窄問題，整檔活動的轉化率會被前端驗證直接腰斬。\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003e客服成本\u003c/strong\u003e：使用者會重複嘗試、回報「我明明貼對了」。\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch2\u003e六、建議修復\u003c/h2\u003e\n  \u003ch3\u003eP0 — 放行 share 短連結（必修）\u003c/h3\u003e\n  \u003cp\u003eThreads 驗證正則新增：\u003c/p\u003e\n  \u003cdiv class=\"codeblock\"\u003e# 建議白名單（不分大小寫，允許有無 www、尾斜線、query）\n^https?://(www\\.)?threads\\.com/share/[A-Za-z0-9_-]+/?(\\?.*)?$\n^https?://(www\\.)?threads\\.net/share/[A-Za-z0-9_-]+/?(\\?.*)?$\n# 保留原有舊格式\n^https?://(www\\.)?threads\\.(com|net)/@[^/]+/post/[^/]+/?(\\?.*)?$\u003c/div\u003e\n  \u003cp\u003e後端審核時，遇到 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 應做一次 302 跟隨解析，取出真實 \u003ccode class=\"mono\"\u003e@user/post/id\u003c/code\u003e 再做貼文存在性與互動數抓取，避免前端只認字串。\u003c/p\u003e\n\n  \u003ch3\u003eP1 — 同步檢查 X / Facebook 規則\u003c/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003eX：需同時支援 \u003ccode class=\"mono\"\u003ex.com\u003c/code\u003e / \u003ccode class=\"mono\"\u003etwitter.com\u003c/code\u003e、\u003ccode class=\"mono\"\u003e/status/\u003c/code\u003e、短連結 \u003ccode class=\"mono\"\u003et.co\u003c/code\u003e 跳轉\u003c/li\u003e\n    \u003cli\u003eFacebook：需支援 \u003ccode class=\"mono\"\u003efacebook.com/share/\u003c/code\u003e、\u003ccode class=\"mono\"\u003efb.watch\u003c/code\u003e（影片）、\u003ccode class=\"mono\"\u003epermalink.php\u003c/code\u003e 等\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch3\u003eP2 — 輸入框體驗\u003c/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e輸入框改為 \u003ccode class=\"mono\"\u003etype=\"url\" + inputmode=\"url\"\u003c/code\u003e，支援長連結橫向滾動檢視\u003c/li\u003e\n    \u003cli\u003e錯誤提示改為更具體文案，例如：「偵測到 Threads 短分享連結，請確認是否為 \u003ccode class=\"mono\"\u003ethreads.com/share/…\u003c/code\u003e，系統已支援」→ 避免讓使用者以為自己貼錯平台\u003c/li\u003e\n    \u003cli\u003e送審前先做 \u003ccode class=\"mono\"\u003eHEAD\u003c/code\u003e 預檢：若 302 到正確 domain，先提示「已識別為 Threads 連結，送審中」\u003c/li\u003e\n  \u003c/ul\u003e\n\n  \u003ch2\u003e七、供 QA 複測用資訊\u003c/h2\u003e\n  \u003ctable\u003e\n    \u003cthead\u003e\u003ctr\u003e\u003cth\u003e欄位\u003c/th\u003e\u003cth\u003e內容\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\u003ctd\u003e回報時間\u003c/td\u003e\u003ctd\u003e2026-08-19 05:10（UTC+8）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e復現連結\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003ehttps://www.threads.com/share/BAZ9xV_xNU/\u003c/code\u003e（影片貼文）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e解析後真實 ID\u003c/td\u003e\u003ctd\u003e\u003ccode class=\"mono\"\u003e@h94ful3ful6/post/DcMipB4E7wR\u003c/code\u003e（302 目標，瀏覽器最終 404，可能已刪或需登入）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e裝置\u003c/td\u003e\u003ctd\u003eAndroid（截圖狀態列 05:10, 4G+）\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e期望結果\u003c/td\u003e\u003ctd\u003e貼上 \u003ccode class=\"mono\"\u003e/share/\u003c/code\u003e 連結可通過前端驗證並送後端審核；審核通過先發 1,000 點，互動數達標再補發\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e實際結果\u003c/td\u003e\u003ctd\u003e前端直接紅字阻擋，無法送審\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\n\n  \u003cp style=\"margin-top:18px; font-size:12px; color:var(--ink-2); border-top:1px solid var(--hair); padding-top:12px;\"\u003e備註：本筆記已附兩張截圖證據與實測轉址紀錄。若需補充，可請使用者提供「在 Threads App 內打開該 share 連結後的截圖」或「瀏覽器網址列的 @user/post 完整連結」作為對照。\u003c/p\u003e\n\u003c/div\u003e","createdAt":1787087637390,"deletedAt":null,"displayMode":"artifact","id":"0e578f87a92f3687f18ddc1e","isNew":false,"isPublic":true,"itemType":"NOTE","name":"CubeLV 平台 Bug 回報：分享活動 Threads 短連結審核被誤判為無效連結","parents":{"4465d0a863da5d1b345d888c":1787087637390},"preParentID":null,"updatedAt":1788024625209,"updatedBy":{"userId":"6a3dcfc700e9b9fd06d5ef","userName":"蔡其樺"},"version":43,"websiteContent":"[{\"originUrl\":\"https://www.threads.com/share/BAZ9xV_xNU/\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.co…\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.com/share/XXXXX/\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR?xmt=…\u0026amp;slof=1\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.net/share/BAZ9xV_xNU\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.com/@h94ful3ful6/post/DcMipB4E7wR\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.net/@user/post/123\",\"title\":null,\"content\":null,\"imageUrl\":null},{\"originUrl\":\"https://www.threads.co\",\"title\":null,\"content\":null,\"imageUrl\":null}]"}]}