怎樣選兩邊填表及查看的方式?
需要把現有網站重寫嗎?
不用。現有網站繼續顯示表單及處理登入;由你自己的伺服器將欄位及答案送到 OpenDashboard。每個網站有自己的應用、金鑰及報表工作區,使用同一套通用 API。
OpenDashboard 會自動提供填表頁嗎?
流程已有公開報名連結、iframe 及每宗申請的私人續填頁,在「流程 → 網站接入」取得;只有一份表單也可建立一個填表步驟。普通 /api/apps/v1/forms 只建立連接應用的定義,不回傳公開填表頁。獨立活動/問卷的原有入口仍保持原樣,不能混用這三種表單的網址。
我們想自己設計填表頁,如何知道欄位及答案格式?
新流程先讀流程接入教學,使用 /api/workflow-ui?action=definition 取得問題,並按 application 的 current_actions 操作同一申請。
以下才是普通單份連接應用表單的方式:由網站後端 GET /forms/:id 取得 questions。UI 按 type 顯示控制,答案按 key 保存,選項原樣送回,重複群組使用物件陣列。後端核對使用者身份、加入 respondent,再 POST /forms/:id/responses。閱讀自己的填表介面教程,下載表單/答案 JSON,參考讀回版本、驗證錯誤及完整更新。這些普通端點只適用於同一連接應用擁有的表單;競賽報名及作品另用 entry/submission 端點,教程也列出差別。
金鑰放在哪裡?
放在伺服器秘密管理服務或環境變數。前端只呼叫你自己的後端。OpenDashboard 只保存金鑰雜湊,無法重新顯示原金鑰;遺失時請管理員輪換。舊金鑰會立即失效。
怎樣區分測試和正式資料?
應用金鑰 odb_test_ 只看到測試資料,odb_live_ 只看到正式資料;流程金鑰則為 odb_flow_test_/odb_flow_live_,只操作綁定的流程入口。日常流程 UI 不需要選資料環境;驗收另用隔離流程,勿在收取真實報名的入口試填。錯用金鑰讀取表單/合集得到 404。用測試金鑰完成驗收後,在正式環境另建自己的定義。
一份表單有多人,怎樣計算?
把多人資料放在 repeating_group。submissions 計提交份數,群組項目表計群組內項目數,多選表計選項次數。兩份合成回覆含 3+4 位參加者,應為 2 份提交和 7 個項目,不能用兩者代替對方。
多選會把人數算多嗎?
選項表中一個項目可以有多行。計人/項目數用項目表,或在選項表對 item_key 做 countDistinct;後者只包括有選任何選項的項目。按 choice 分組的 count 是各選項次數,總和可以大於項目數。
在 OpenDashboard 管理介面可以查看外站表單嗎?
有上述個人資料查看權限的平台職員,可在「表單管理」或回覆選單找到正式外站表單;來源網站名稱及「只供查看」會顯示在列表。回覆頁支援分頁、完整欄位、重複群組及私人附件。預設列表略過已封存的外站表單,測試表單及 OpenDashboard 代理表單 不會出現在這個入口。表單定義、回覆修改、刪除和通知仍由來源網站維護。
為甚麼群組沒有出現在儀表板?
先讀合集 tables,核對回傳字典和 unit。群組預設個人,只要其任何巢狀欄位屬個人,整個群組就被排除。只對經確認的非識別欄位設定 personal: false;電郵、電話及附件不能改成非個人。若需統計而原群組含身份欄位,另建只含安全統計欄位的群組。
重複群組可以有小表格嗎?
可以。群組可包含一層巢狀群組,最多兩層群組。每層最多 50 個欄位、每個群組最多 100 個項目。子項目以 parent_item_key 連到父項目;資料表名稱不應由客戶端解析或拼接。報表每個指標仍只讀一張資料表。
為甚麼表格中沒有姓名和附件?
合集資料表及公開報告排除個人欄位,因為報表可能分享。私人答案仍保存在回覆中,可由該應用的伺服器,或具備應用共用工作區 read_personal 權限的平台職員讀取。超級管理員沿用共用工作區的存取權限。personal: false 是安全分類聲明,不會替你去識別;也不要把個人資料寫進表單標題、欄位標籤、respondent 或報表註解。
更新答案會產生重複嗎?
流程:沿用同一私人憑證及申請,修改項目帶 item;每個新動作產生 operation_id,結果未知重送原請求。詳見流程重試。
普通表單:同一表單及 respondent 只有一份回覆。使用穩定 respondent,送完整答案、replace: true、目前 expected_version 和明確時間。成功後保存 id/version。精確重試保留相同內容、時間及原 expected_version,會傳回原結果;建立表單及合集則沒有這個保障。
收到 response_changed 應怎樣處理?
用 GET /forms/:id/responses?respondent=固定匿名編號 重新讀取該回覆者的最新回覆,核對來源哪份資料較新,再決定下一次更新。不要自動只提高 expected_version 然後覆寫。未使用 expected_version 的舊式 replace 不具相同重試保障。
請求逾時可以直接重送嗎?
GET 可重讀;有 expected_version 的回覆可精確重試;record 依固定 record_id 重試;附件保留 external_id 和檔案摘要。建立表單/合集結果不明時先查核,不能盲目重送。報告連結在仍有效時會回用同一個,但停用或過期後重新建立會產生新連結。
原始長文、歷史和檔案怎樣保存?
最新表單答案用 responses;歷史用 append-only records。data 可存私人原文但每筆 compact JSON 最多 65,536 bytes,不進報表;較大內容需要你按來源設計分段及清單。identified mode 應用可使用 uploads 保存 1 byte 至 50 MiB 的私人檔案,提交大小及 SHA-256,完成後由伺服器驗證。
刪除 records 會刪掉全部個人資料嗎?
不會。DELETE /records?respondent=... 只清除該回覆者的記錄 payload,保留 tombstone 防止重送復活;表單答案、私人附件及已凍結的分享/快照要另行處理。現有 uploads API 沒有刪除端點,附件保留/抹除需由營運管理員處理。
API 是否自動建立儀表板?
API 準備好資料。管理員在應用工作區加入合集,再建立及核對儀表板。新指標預設未核實。個人報告需先在 OpenDashboard 設定範本名稱,再由 API 取得連結;API 不會自動發布或核實管理報告。
個人報告會看到其他人的資料嗎?
OpenDashboard 對合集和應用記錄按 respondent 重新查詢,只送該回覆者的行。手動匯入的資料表、固定文字及圖像可能對所有人相同;管理員不要把全體資料放在這類範本中。報告 URL 本身就是存取憑證,請私下提供,必要時停用。
表單或合集欄位想改怎樣做?
現有定義不能任意修改。PATCH fields 只改個人分類;欄位、型別或合集成員改動時建新表單/合集,保存新舊版本對應。歷史 record kind 使用新 schema 字串,不改舊聲明。既有指標、快照及分享不會被偷偷重寫。
哪些錯誤值得重試?
400 按 fields/errors 修正內容;401 檢查金鑰或應用停用狀態;404 檢查應用和測試/正式模式;409 按該端點處理衝突;413 拆分請求或縮減資料;429 按 Retry-After;5xx/逾時有限次重試,遵守端點的冪等規則。完整代碼見 API 參考。
新網站接入前要驗收甚麼?
驗證只有自己的應用可讀資料,測試/正式隔離,個人欄位被排除,兩份回覆及多人數分開計算,空群組保留字典,更新和重試不重複,以及個人報告只讀對應回覆者。可執行範例會驗證提交數、項目數、更新及精確重試。
新網站可以只用 OpenDashboard 保存表單資料嗎?
可以。新流程固定由 OpenDashboard 管理答案,外站只需保存身份/私人憑證對應。以下是普通連接應用表單的接法:網站顯示表單並核對使用者,後端直接呼叫 OpenDashboard 保存答案;答案、私人附件及歷史可由 OpenDashboard 的 responses/uploads/records 保存。你的網站不用另外建立表單答案資料庫,也可按需要選擇雙份保存。網站仍需伺服器端入口保護應用金鑰及回覆存取權,表單和合集 id 可保留在設定中。直接保存模式只有 OpenDashboard 確認保存成功才顯示提交成功;未成功時保留頁面答案並讓使用者重試。
直接保存後,資料和儀表板會即時更新嗎?
每次成功的 API 提交已保存在 OpenDashboard,不必等待匯入或同步排程。合集及個人報告在下次讀取時使用最新答案;儀表板在重新開啟或重新整理時刷新,目前沒有自動推送畫面更新。已有網站的批次匯入/同步是另外一種接入方式,不會限制新網站直接保存。
不保存本地答案,怎樣讓使用者修改自己的回覆?
從 OpenDashboard 讀取目前答案和版本,再以 expected_version 提交完整更新。應用金鑰只限該應用,但不會替網站辨認目前登入的訪客;網站後端需用自己的身份/存取憑證核對 respondent,不能信任瀏覽器任意傳來的編號。可用 GET /forms/:id/responses?respondent=<ref> 精確讀回該隊,不存在時為空陣列;不加參數才讀全體。後端仍須先核對身份,不能把全體私人答案送到瀏覽器。
可以在自己的網站顯示 OpenDashboard 的資料列表或圖表嗎?
可以由自己的後端讀取所屬應用資料,再交給自己的介面。答案列表使用 responses;排除個人欄位的報表資料使用合集 tables。管理員和一般訪客可看的資料不同,網站後端必須核對。現有個人報告可用按鈕連結開啟;可直接嵌入的通用列表/圖表元件尚未提供。
可否保留自己的資料庫並自動同步給 OpenDashboard?
可以用同一套提交/更新 API 接入。建議由網站在同一資料庫交易保存答案及待同步工作,背景工作依來源版本順序送出,成功後保存 OpenDashboard id/version。失敗保留待同步狀態並重試;OpenDashboard 接收成功前只可顯示本地保存成功。這個背景流程要由網站實作,建立連接應用不會自動接通任意資料庫。
兩邊都保存時,修改哪一份才算數?
先選定主要寫入端。網站為主時,所有修改先存網站,再同步 OpenDashboard;OpenDashboard 為主時,先確認 OpenDashboard 成功,再更新本地副本。每份回覆保留來源版本及 OpenDashboard 版本,衝突時核對內容,不可單靠時間較晚便覆寫。流程支援 workflow.application.changed 變更通知及處理回報;普通 responses 沒有通用回覆變更 webhook。兩者都沒有自動雙向合併或跨資料庫交易保證。原站回寫 intake 有專用的待處理指令通知;以 OpenDashboard 為主時,兩個 UI 共用中央版本檢查,不需要兩份答案互相覆寫。
資料保存及介面選項要綁在一起嗎?
不用。網站可以不保存本地答案,仍用自己的填表及資料列表;也可保留本地答案,使用 OpenDashboard 報告。同一套 API 支援這些組合。流程目前已提供完整頁面的 iframe,與連結共用問題和規則;普通 forms API 沒有可直接嵌入的通用元件。
只限職員或含個人資料的儀表板可以分享嗎?
可以由有 edit_boards 權限的人,在分享介面檢查接收者預覽及全部數據欄位,再確認公開分享警告。即時數據會變成當次的固定版本,來源 API 和工作區權限不會公開;每次更新分享都要重新確認。只有顯示、計算、分組或篩選用到的欄位會包含在分享中。任何取得分享連結的人都可以查看及轉傳。這個可選分享流程不改變合集、個人報告範本及匯出原有的個人欄位保護。
可否在 OpenDashboard 免登入填表並送回原站?
可以選用免登入填表與原站回寫。公開入口只建立新隊伍,再以私人連結修改;既有資料不會按姓名或電郵被認領。需要配置原站回寫程序及通知,單純匯入或建立表單不會自動啟用。
只在 OpenDashboard 看管理資料,外站是否完全不能讀答案?
管理畫面放在哪裡與金鑰權限不同。外站可以不提供名單/統計,但仍按權限讓參加者載入本隊草稿。現有應用金鑰可讀寫該應用資源,沒有自動變成僅寫入金鑰。要在服務端禁止任何答案讀取,需額外的受限存取層。
兩份表單是否要串成流程?報名網址在哪裡?
需要報名後交作品、補件或審核時,把步驟放在流程管理;普通獨立問卷仍用本身的填表網址。在流程管理選擇流程,再到「網站接入 → 報名連結」開啟或複製公開連結。原站同步的表單資料在同一流程的表單分頁查看。每隊繼續填寫用自己的私人連結,不是重新走公開入口。
接另一個網站是否要重寫 OpenDashboard?
一般不需要:新活動在流程管理完成設定,網站使用流程填表 API 或連結/iframe;需要副本時加流程通知。較廣的 workflows/runs/links 管理 API 及既有 intakes/commands/ack 合約繼續保留。每站仍需自己的欄位、身份、權限與附件對應。兩邊填表不代表兩邊各保存一套可任意覆蓋的正式答案,詳見接入方式。