2017-06-27 42 views
-1

所以這裏是我正在嘗試做的事情: 我爲我的業務構建了一個bot,它包含在我的網頁和我的Facebook頁面上。 Bot運行良好。連接谷歌日曆api和api.ai

我想通過允許我的客戶在我的日曆上查詢,請求預訂特定時間,查看是否可用,如果不提供其他時間類似,然後進行預訂,將其推向下一步。

我一直在閱讀this thread和附帶的很好的答案,但我認爲我的情況有點不同。 我想知道機器人是否總是有一個令牌,所以每個客人都不必進行Auth查詢日曆?

很明顯,我對此很陌生,我一直在閱讀谷歌日曆api和api.ai的指南,但我真的不知道該怎麼做。我想有一種方法可以在某個地方存儲一個標記,然後用某些特定的意圖觸發查詢,但不知道如何。

我也做了G日曆api的node.js快速入門指南,並且如果有幫助的話,它工作正常。

感謝您的幫助!

+0

只是要清楚 - 您並未嘗試將日曆請求附加到特定的Google用戶,但允許任何通過API.AI與您通話的人編輯日曆? – Prisoner

+0

確切地說,所以我想我必須在具有webhook client-secret.json文件的應用程序中存儲客戶機密鑰和ID,但我不確定。 –

回答

0

您可能會想要使用相關日曆所允許的服務帳戶。服務帳戶與常規帳戶類似,但它們只能進行服務器到服務器的通信,所以創建身份驗證令牌的方法與保護其安全性有點不同。

有關使用服務帳戶的更多信息,請參閱https://developers.google.com/identity/protocols/OAuth2ServiceAccount

通常,您將使用共享密鑰創建並簽署您發送給Google服務器的JSON Web令牌(JWT)。您將獲得一個訪問令牌,然後您將使用它來調用Calendar API。訪問令牌將在大約一個小時內過期,屆時您需要重複該過程。

有些庫可以爲你做這些事情。例如,如果您使用的是node.js庫https://github.com/google/google-api-nodejs-client,那麼它會爲您處理此問題(儘管您需要修改密鑰文件 - 請參閱文檔以瞭解詳細信息)。

+0

感謝您的回答。我看到這是一種選擇,但我知道有一種方法可以做到這一點,而無需一直請求新的令牌。 [這傢伙設法做到這一點](https://github.com/wannikid/madridweekly)在Python中,但我不知道如何翻譯在節點。他說他的服務器上只有一個名爲Credentials的文件夾,它帶有一個calendar-python-quickstart.json文件,就是這樣。 –

+0

他在必要時請求新的令牌 - 或者說,API庫正在爲他做這件事。您正在使用的node.js庫也可以做到這一點。 – Prisoner

+0

哦,好吧,我明白了,但這不會與查詢機器人的人產生任何交互? 我可以直接和你談談嗎? –