跳到內容

Google 日曆同步

您可以將 Bookly 與 Google 日曆無縫整合,讓 Bookly 日曆與 Google 日曆之間的新預約自動雙向同步。

Bookly PRO 提供三種 Google 日曆同步模式:

在選擇同步模式之前,請仔細閱讀以下說明,瞭解如何設定兩個日曆之間的連線。

若要設定連線,您需要在 Bookly >「設定」>「Google日曆」中輸入 Client ID 與 Client Secret。

若要取得您的 Client ID 與 Client Secret,請依照以下步驟操作:

1. 前往 Google Cloud Platform。

2. 建立一個新專案。

Google Cloud Platform

3. 啟用 Google Calendar API:

  • 在左側側邊欄中選擇 Library。
  • 搜尋 Google Calendar API,或點擊此連結直接前往該 API 頁面。
  • 確認該 API 已啟用。

Google Cloud Platform

4. 設定應用程式憑證:

  • 選擇您的專案,接著點擊左側的 OAuth consent screen,再點擊 Get Started 開始設定憑證。
  • 填入所需的應用程式與聯絡資訊,然後點擊 Create。

Google Cloud Platform

Google Cloud Platform

5. 建立 OAuth 用戶端憑證:

  • 在下一個畫面中,點擊 Create OAuth Client。
  • 在 Application type 中,選擇 Web application 並輸入名稱。
  • 在 Authorized redirect URIs 欄位中,輸入 Bookly >「設定」>「Google日曆」 中提供的重新導向網址(Redirect URI)。
  • 點擊 Create。

Google Cloud Platform

Google Cloud Platform

6. 在 Bookly 中輸入憑證:

  • 在 OAuth 2.0 Client IDs 下,選擇您的專案以檢視 Client ID,並建立 Client Secret。
  • 將這些數值複製並貼到 Bookly >「設定」>「Google日曆」 中。

Google Cloud Platform

Google Cloud Platform

**重要:**若要使用雙向同步,您的網站必須使用 HTTPS。只有在您的網頁伺服器上安裝了有效的 SSL 憑證時,Google Calendar API 才能將通知傳送到 HTTPS 網址。

完成上述設定後,請前往「員工」區塊,選擇您的員工,切換到「高階」分頁,並啟用連線,即可將該員工的預約與 Google 日曆同步。

Bookly 中的員工設定

最後,登入您的 Google 帳戶,並授權外掛存取您的 Google 日曆。

存取 Google 帳戶

如果在連線過程中出現 Error 403: access_denied,請在 Google Console 中開啟您的應用程式,前往 Google Auth Platform Audience,並將發布狀態(Publishing status)變更為 In production。

Google Cloud Platform

目前每個用戶端、每個使用者帳戶的重新整理權杖(refresh token)上限為 50 個。若達到此上限,建立新的重新整理權杖會自動使最舊的權杖失效,且不會發出警告。此限制不適用於服務帳戶。

當您將員工連接到其 Google 日曆時,可能會看到「Google 未驗證此應用程式」的警告訊息。

這個畫面表示您的 Google 應用程式尚未通過 Google 的驗證流程。您仍可以繼續連接員工帳戶的流程,點擊「Advanced」並繼續操作即可。

若要在未來避免出現此警告,您應該在應用程式的同意畫面(consent screen)中完成應用程式驗證。

若您是現有使用者,且在新增員工後遇到同步問題,請依照以下步驟操作:

前往 Bookly >「設定」>「Google日曆」>「轉向連接URI」。複製更新後的連結,並貼到您的 Google API Console > Credentials > Web Application > Authorized Redirect URIs 中。

您過去也曾這樣操作過;由於外掛定期更新時網址(URI)可能會變更,您偶爾需要告知 Google API 新的授權網址。

這樣做通常可以解決同步問題。若問題仍然存在,請透過 support@bookly.net 與我們聯繫。

Bookly 讓您可以自訂預約資訊在 Google 日曆中的顯示方式。

預約標題的模板

選擇透過 Bookly 建立的 Google 日曆活動說明中要顯示的細節。可用的代碼有 {service_name}、{category_name}、{staff_name}、{client_names} 與 {client_phones}。

事件描述樣板

使用可用的代碼,設定要在 Google 日曆中顯示的預約相關資訊。

在設定 GC 事件描述時,若在 {#each participants as participant}{/each} 結構內使用相關代碼,應使用 {participant.client_email} 而非 {client_email},其餘代碼以此類推。這樣可確保團體預約在 Google 日曆中正確顯示預約詳情。

單向同步

若啟用此同步模式,任何在 Bookly 日曆中建立的新預約(包括自訂欄位)以及後續的修改,都會反映到 Google 日曆中。

雙向 僅前端

若選擇此同步模式,在 Bookly 中所做的任何更新都會自動反映到您的 Google 日曆中。不過,原本在 Google 日曆中建立的活動不會被複製並顯示在您的 Bookly 日曆中。系統會在預約表單向顧客顯示可預約時段時,將 Google 日曆中的活動納入考量。因此,如果 Google 日曆中有一個活動,對應的時段就不會開放預約,因為 Bookly 會將該時段視為已被占用。

請注意,兩個日曆之間的預約同步可能需要一些時間,這可能會導致預約表單中的 Time 步驟載入時發生延遲。為了確保最佳效能,建議您限制與此功能相關的擷取活動數量。如果 Google 日曆中的活動過多,Bookly 嘗試擷取所有活動時,可能會導致 PHP 發生記憶體問題。

雙向同步

若啟用雙向同步選項(需要為 Bookly 安裝 Advanced Google Calendar(Add-on)),您就能享有完整的雙向同步功能。這可確保您 Bookly 日曆中的所有資料,連同後續的排程變更,都會持續與 Google 日曆保持同步。無論是在 Bookly 日曆中新建立或更新的預約,都會自動反映到 Google 日曆中,反之亦然。

在啟用並儲存此同步選項之前,請務必先在 Google 日曆中完成相關設定。此外,請確保您的網站使用 HTTPS,以確保同步流程順暢進行。

請仔細閱讀以下說明,並前往此頁面瞭解日曆資料「增量同步(incremental synchronization)」的實作細節。

雙向同步包含兩個階段:

1. 初次完整同步只會在一開始執行一次,讓用戶端的狀態與伺服器端的狀態一致。用戶端會取得一個必須儲存的同步權杖(sync token)。

當您啟用雙向同步並點擊 Save 後,系統會啟動一次完整同步。Bookly 中的所有預約都會複製到 Google 日曆,反之亦然。

在同步預約歷史記錄欄位中,指定您想要同步的過去日曆天數。舉例來說,如果您輸入 1,兩個日曆就會同步從昨天開始的預約歷史記錄。

初次同步所需的時間,會依需要同步的活動數量而有所不同。

2. 增量同步是一個重複執行的流程,會持續將自上次同步以來的變更更新至用戶端。每次執行時,用戶端會提供先前從伺服器取得的同步權杖,並儲存回應中收到的新同步權杖。

增量同步會在初次完整同步完成後開始運作。當 Google 日曆透過推播通知(push notifications)告知您的 Bookly 日曆有變更時,Bookly 就會啟動增量同步。

註冊您的網域

您計劃用來接收推播通知訊息的任何網址,都必須先註冊網域。此外,在註冊網域之前,您必須先驗證擁有權。此步驟是一項防止濫用的措施,避免任何人利用推播功能,向其他人的網域傳送訊息。

步驟 1:驗證您擁有該網域

在註冊網域之前,您需要先驗證自己確實擁有該網域。請使用Search Console完成網站驗證流程。詳情請參閱網站驗證說明文件。

步驟 2:註冊您的網域

若要將已驗證的網域名稱註冊為您專案的允許網域之一,請執行以下步驟:

1. 前往 API Console 中的網域驗證頁面。

2. 點擊 Add domain。

3. 填寫表單,然後再次點擊 Add domain。

此時,Google API Console 會將清單中的所有網域,與您在 Search Console 中已驗證的網域進行比對。假設您已正確驗證所有網域,此頁面就會更新並顯示您新的允許網域清單。您現在可以使用這些網域中的任何一個來接收推播通知。

若您需要更多技術資訊,請參閱以下連結:

https://developers.google.com/calendar/v3/sync

https://developers.google.com/calendar/v3/push

手動同步

您可以點擊 Bookly 日曆右上方的 Google日曆 按鈕,啟動新的增量同步。

當您在 Google 日曆中建立全天活動時,其狀態預設會設為空閒。您應該將其狀態變更為忙碌,才能讓此活動顯示在 Bookly 日曆中。

Google 日曆活動

如需排解 Google 日曆同步最常見的問題,請參閱以下文章:

我無法將員工連接到 Google 日曆

我的網站與 Google 日曆之間有資料不一致的情況,我該怎麼辦?

更新後 Google 日曆同步無法正常運作,我要如何修正?

我的 Google 日曆同步無法運作。在「Staff Members」分頁中,我看到這則錯誤訊息:「Could not json decode the token.」