1

我想建立一個管理代表我的用戶在谷歌日曆約會的時候還沒有登錄他們的應用程序。我可以通過谷歌API v3訪問其他谷歌用戶的日曆

的應用將是一個預訂服務,訂閱用戶(我們的服務提供商)將預訂他們不可用的時間,並且客戶將看到服務提供商的谷歌日曆的空閒/忙碌表示

應用程序需要能夠創建,刪除和閱讀約會。

我都去了谷歌開發者控制檯,並有工作彈出的谷歌權限屏幕,然後重定向至成功地創建了一個新的約會一個URL編碼。

我可以訪問其他的日曆,但只有當他們在那個時候登錄到谷歌服務。

$client = new \Google_Client(); 
$client->addScope('https://www.googleapis.com/auth/calendar'); 
$service = new \Google_Service_Calendar($client); 

$authUrl = $client->createAuthUrl(); 

如果用戶正在管理自己的日曆,這可以正常工作。但是,我想代表他們管理約會。這將包括其他黨派進入約會到日曆 - 即當未登錄日曆

我需要的是應用程序,以獲得持久的訪問我的用戶的日曆中的持久的權威?

有誰知道這可能嗎?不勝感激我想如何解決這個問題。

回答

1

的OAuth 2.0服務帳戶是用於訪問用戶帳戶的正確方法:

https://developers.google.com/accounts/docs/OAuth2ServiceAccount

您需要授予服務帳戶客戶端ID獲得必要的日曆API範圍:

https://developers.google.com/drive/web/delegation#delegate_domain-wide_authority_to_your_service_account

那麼你的服務帳戶可以模擬用戶,並代表他們執行日曆操作:

https://developers.google.com/drive/web/delegation#instantiate_a_drive_service_object

這些文檔描述Google Drive,但Calendar的過程是相同的。

+0

該文檔描述了一個「您的領域」這是一樣的,一個企業可能有域名?如果一個未知的第三方通過該應用程序來進行身份驗證並授予權限,那麼這項工作 - 或者我需要在我的域中向他們發佈一個日曆,該日曆可能會限制爲600個用戶。 –

+0

我很好奇,我希望我的用戶通過應用程序添加與他們首選日曆相關的電子郵件。該應用程序將保存顯示每個加入日曆活動的主日曆。舉例來說,每個用戶都是具有約會的現場代表,通過連接到他們的日曆,應用程序顯示所有事件。我知道這可以管理所有用戶的域名,但大多數都有自己的cals。他們可以與域名相關的日曆分享他們的日曆,但是我已經爲每個代表發行了新賬戶。你能解釋一下其他Gmail的外部日曆關係 – zzipper72

+0

我有同樣的問題。假設我有兩個以上的不同業務領域。 業務: - Employee_a1 - Employee_a2 商務B: - Employee_b1 所有員工都有谷歌電子郵件帳戶。我可以爲每個員工雙向同步日曆。 但是,如果Employee_a1使用Employee_b1電子郵件帳戶。 Employee_a1將獲得Employee_b1事件?所以我不確定域名在這種情況下會如何工作? – ivantxo