2013-07-24 13 views
0

我正在研究一個系統,該系統允許您使用Google日曆API安排事件。但是,這將用於小公司的內部使用,他們只需要使用一個Google帳戶(即整個公司的一個帳戶),以便每個人都可以訪問完全相同的事件。在Google日曆API中驗證單個用戶

我已經實現了日曆API和日程安排功能(使用PHP btw),但是在對用戶進行身份驗證時,他們可以使用任何Google帳戶(包括他們的個人帳戶)進行登錄。他們應該只能夠使用公司帳戶進行身份驗證,以便事件不會計入個人帳戶。

我想要做的是檢查經過身份驗證的帳戶的電子郵件地址,看它是否與公司的電子郵件地址匹配,並且如果沒有錯誤會顯示告訴他們他們在錯誤的帳戶。

這可行,但它似乎是一個非常低效和醜陋的解決方案(特別是考慮到我可能需要使用Google+ API來獲取他們的電子郵件地址)。

這樣做的建議方式是什麼?

(也,日曆API文檔吸。有什麼用那了!)

回答

0

如果您使用的是谷歌的的OAuth2機構認證,你實際上必須註冊在谷歌API控制檯(https://code.google.com/apis/console)您的應用程序,並提供客戶端密碼,客戶端ID,授權URI等等。在這種身份驗證機制下,您的用戶別無選擇,只能通過在API控制檯中註冊的帳戶進行身份驗證,因此使用「其他」帳戶進行身份驗證時沒有問題。

谷歌的上使用替代的建議(非OAuth的)認證裝置如下:

的AuthSub和ClientLogin的是谷歌公司專有的授權的API,可作爲替代的OAuth對於大多數谷歌的API。如果可能的話,你應該避免使用這些服務。如果您已經有使用它們的應用程序,則應遷移到上述建議的選項。

https://developers.google.com/gdata/docs/auth/overview

此外, 「ClientLogin的」 & 「的AuthSub」 實際上已經棄用:

重要提示:ClientLogin的已被正式棄用4月20日,2012年將繼續工作根據我們的棄用政策,但我們鼓勵您儘快遷移到OAuth 2.0。

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

重要提示:不過,AuthSub已正式棄用2012年將繼續按照我們的棄用政策工作4月20日,但我們建議您儘快遷移至OAuth 2.0可能。

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

我的建議是遷移到OAuth2,問題解決了自身。如果您正在使用2種棄用方法之一,那麼您可能必須制定自己的「非常低效且難看的解決方案」,正如您所說的那樣。

而谷歌日曆文件實際上是相當廣泛:https://developers.google.com/google-apps/calendar/

難道他們真的很容易?不,但有一件事情不是稀缺的。 PHP客戶端庫是在這裏:

https://code.google.com/p/google-api-php-client/

隨着這裏PHP示例:

https://code.google.com/p/google-api-php-client/source/browse/trunk/examples/calendar/simple.php

要知道,大部分的谷歌文檔的日曆的假設使用的OAuth2的。