
最後更新:2026年7月20日
要喺Quire同另一個應用程式之間建立雙向同步,你需要一部中介伺服器,接收雙方嘅webhooks,再分別呼叫兩邊嘅API去同步變更。架構如下:Quire ↔ 你嘅應用程式 ↔ 其他應用程式。實作分四個步驟:架設webhook伺服器、將佢註冊到Quire(加為專案的追蹤者)、將佢註冊到另一個應用程式,再根據Quire API文件入面嘅活動類型嚟處理事件。兩條安全規則:為每個變更標記來源,避免無限循環;同時保留Quire任務ID同對方項目ID之間嘅對應表。Google日曆雙向同步應用程式就係一個實際運作嘅例子。
當數據分散喺兩個應用程式,每一個操作都要做多兩次,或者悄悄咁失去同步。雙向同步透過webhooks令Quire同另一個應用程式自動交換更新,解決咗呢個重複輸入嘅問題。Quire嘅Open API正正就係為咗呢種模式而設計。
工具之間各自為政嘅代價已經有據可查。根據McKinsey針對社交經濟嘅研究,知識工作者每星期有接近20%嘅時間都用喺搵內部資訊,而唔係做實際工作。一個可靠嘅同步機制可以自動消除當中一大部分嘅負擔。
Google日曆雙向同步應用程式就係一個經典例子:Quire任務同Google日曆事件無需人手對照就可以保持一致。呢篇文章會講解點樣針對任何其他應用程式嘅API建立同樣嘅模式。
Google日曆雙向同步係為Premium或以上訂閲級別而設嘅。更多資訊可以喺我哋嘅定價頁面搵到。
| 組件 | 角色 |
|---|---|
| Quire應用程式 | 提供API憑證;註冊為專案的追蹤者以接收webhooks |
| 中介伺服器(你嘅應用程式) | 接收雙方嘅webhooks;呼叫各自嘅API去同步變更 |
| 另一個應用程式(例如Google日曆) | 佢嗰邊事件嘅來源;亦係API寫入嘅目標 |
| Quire應用程式設定入面嘅Webhook URL | Quire發送活動事件POST請求嘅目的地 |
| ID對應表 | 將Quire任務ID同另一個應用程式嘅項目ID互相對應 |
| 每個變更嘅來源標籤 | 防止更新出現無限循環 |
你可以將雙向同步想像成兩個應用程式之間嘅對話。當你喺Quire更新一個任務,佢就會通知另一個應用程式呢個變更。而當嗰個應用程式入面有嘢更新,佢又會通知返Quire。咁樣就可以令你嘅資訊喺任何地方都保持一致。

第一步係設置你嘅Quire應用程式。你需要建立一個應用程式,先可以攞到透過API存取你Quire專案所需嘅憑證。
想了解點樣用Quire API建立自己嘅應用程式,一步一步嘅教學可以參考我哋嘅網誌文章。
要實作雙向同步,你需要開發一個中介應用程式(你嘅應用程式),充當Quire同你嘅目標應用程式(例如Google日曆)之間嘅橋樑。你可以將佢想像成一個翻譯員:佢會由一方攞資訊,處理之後,再向另一方發送正確嘅指令。整個流程大致係咁:Quire ↔ 你嘅應用程式 ↔ 其他應用程式。
要啟用雙向同步,你首先需要設置自己嘅伺服器應用程式,充當中介層。呢個應用程式負責接收Quire同另一個應用程式雙方嘅webhook POST請求。 你嘅伺服器應該可以:
你可以用任何你偏好嘅技術建立呢部伺服器應用程式,例如Node.js、Python或者Ruby。喺以下區段,我哋會用Node.js嚟示範一個簡單嘅例子,講解點樣接收同處理webhook事件。 請確保你嘅伺服器可以從互聯網連接到,咁樣Quire同另一個應用程式先可以將webhook事件發送過去。
以下係一個用Express嘅簡單Node.js例子:
const express = require('express');
const app = express();
app.use(express.json());
app.listen(3000, () => {
console.log('Server is running on port 3000');
});接下來,你需要喺你嘅伺服器建立一條路由,接收來自Quire嘅webhook事件。
app.post('/webhook', (req, res) => {
console.log('Received webhook event:', req.body);
// TODO: Handle the event and update Quire or other app via API
res.status(200).send('Event received');
});喺呢個例子入面,webhook路由係/webhook,所以完整嘅URL會係${your-host}/webhook。
複製呢個webhook URL,再貼上去Quire應用程式設定入面,咁Quire先知道要將事件通知發送去邊。

除此之外,你仲需要將你嘅Quire應用程式註冊為你想同步嘅專案嘅追蹤者。呢樣可以確保你嘅應用程式收到相關更新嘅通知。
想了解點樣透過Quire API接收通知,一步一步嘅教學可以參考我哋嘅指南。
要將另一個應用程式嘅更新同步返Quire,你亦都需要喺你嘅伺服器建立一條路由,接收來自嗰個應用程式嘅webhook事件。呢個註冊流程同上面Quire嘅例子相似。只需要將另一個應用程式設定為將事件通知發送去你中介應用程式嘅webhook端點,並確保你嘅伺服器可以妥善處理呢啲傳入嘅事件。
一旦你嘅應用程式開始接收來自Quire同另一個應用程式雙方嘅webhook事件,你就需要實作邏輯去處理呢啲事件,並喺兩個平台之間同步資料。呢個通常涉及:
透過小心處理傳入嘅事件同透過API更新資料,你嘅應用程式可以確保變化喺雙方都準確反映,維持可靠嘅雙向同步。
以下係一個用Node.js同axios嘅例子:
const axios = require('axios');
app.post('/webhook', (req, res) => {
const { type } = req.body.data;
// Reference of activity types:
// https://github.com/quire-api/quire-api/blob/master/docs/activity_types.md
switch (type) {
case 0: //Quire task created
onQuireTaskCreate();
break;
case 1: //Quire task deleted
onQuireTaskDelete();
break;
}
res.status(200).send('Event received');
});
// Route for handling events from another app to Quire
app.post('/anotherwebhook', async (req, res) => {
const { isCreate, id, name, projectId } = req.body;
if (isCreate) {
// Create a task in the Quire project
await axios.post(`https://quire.io/api/task/${projectId}`, { name });
// Optionally, store the mapping between your app's id and Quire's task id
} else {
// Retrieve the corresponding Quire task id using your mapping logic
const taskOid = getTaskIdByAppEventId(id, projectId);
// Delete the task from the Quire project
await axios.delete(`https://quire.io/api/task/${taskOid}`);
}
res.status(200).send('Event processed successfully');
});呢個例子示範咗點樣處理來自另一個應用程式嘅建立同刪除事件,並將佢哋同步返Quire。記得要實作妥善嘅錯誤處理,並維持ID對應,先可以確保同步可靠。
兩條安全規則可以涵蓋幾乎所有第一次實作都會踩到嘅失敗情況:
Open API加上webhooks,可以將Quire同你其他工具變成一個單一嘅資料來源,而唔係兩個互相矛盾嘅版本。由最細規模、可行嘅同步開始(一種事件類型、一個方向),確認整個循環由頭到尾都行得通,之後先擴大規模。
相關文章:透過Quire API整合外部工具——以n8n作為例子——如果你想由無程式碼嘅自動化工具開始,而唔係自訂伺服器,呢篇有個實作範例。
一種雙向連接,更新會兩邊互通:喺Quire嘅變化推送去另一個應用程式,而喺嗰邊嘅變化又推返嚟Quire。Google日曆雙向同步應用程式就係一個實際運作嘅例子。
一個擁有API憑證嘅Quire應用程式、一部可以從互聯網連接到並接收webhooks嘅中介伺服器,仲要有邏輯去喺兩個API之間轉譯事件。任何後端語言都可以用。
佢扮演一個坐喺Quire同另一個服務之間嘅翻譯員,接收webhook事件,決定要作出咩API呼叫,並維持Quire任務ID同另一個應用程式項目ID之間嘅對應。
追蹤每個變更嘅來源,忽略由自己同步流程觸發嘅更新。冇呢個保護機制嘅話,每個更新就會喺兩個應用程式之間無限來回反彈。
Premium或以上。可以喺定價頁面查閱目前嘅級別限制。