2016-10-18 39 views
0

我正在製作一個Android應用程序,該應用程序使用Google Calendar API和一組其他3名學生,我們正在努力瞭解身份驗證過程。爲什麼需要Google API管理員憑據? (或者他們?)

我們希望能夠只包含一個調用API的Java庫,並設置我們的應用程序請求日曆權限,然後登錄我們的模擬器上的個人Google帳戶並讓應用程序能夠訪問我們各自的日曆。我們不斷收到403(禁止)的錯誤,所以顯然不起作用。

因此,我們試圖絆倒混亂的API文檔,並從Quickstart項目中複製了一些內容。我們設法在Google Developer Console上互相分享項目,併爲每臺計算機添加OAuth憑證,現在它適用於我們每個人,但我們仍然感到困惑。

  1. 爲什麼需要創建憑證?
  2. 發佈過程如何工作?顯然,我們不希望我們的用戶必須爲每個設備生成SHA1密鑰才能使用Play商店中的我們的應用。
  3. 有沒有更簡單的方法來做到這一點?我們是否甚至需要開發者控制檯?

這些問題可能已經得到解答,但我對這個過程知之甚少,不知道要搜索什麼。

回答

1

Google使用OAuth 2.0進行用戶驗證。這意味着,無論何時第三方應用程序需要獲得訪問Google數據的權限,用戶都必須首先批准該請求。

現在,爲Google提供授權憑證(密鑰&祕密),使用此密鑰&祕密Google生成Access密鑰和刷新密鑰給應用程序。

訪問密鑰:用於在有限時間內從Google服務器訪問數據的密鑰。 刷新密鑰:舊密鑰過期時用於獲取新訪問密鑰的密鑰。

現在關注你的問題。

問:爲什麼需要創建憑證? 答:憑據可確保只有您的應用可以訪問用戶的日曆數據。

問:發佈過程如何工作?顯然,我們不希望我們的用戶必須爲每個設備生成SHA1密鑰才能使用Play商店中的我們的應用。答:Google會生成訪問權限並刷新密鑰。

問:有沒有更簡單的方法來做到這一點?我們是否甚至需要開發者控制檯? A:相信我..只要你弄清楚,這是非常容易和最重要的安全方式。 (谷歌不允許使用認證密碼爲默認值)

您可以瞭解更多來自這裏:https://developers.google.com/identity/protocols/OAuth2

+0

謝謝你的答案。你能否解釋一下,爲什麼我們需要爲每個調試設備提供不同的憑證?如果我們在發佈後不需要爲每個設備需要不同的憑證? –

+0

所有設備都沒有相同的憑據。 Google將爲每個帳戶提供不同的訪問權限和密鑰。 – Rishi

相關問題