故事:我正在製作一個Android應用程序,允許用戶購買訂閱,並且不需要用戶擁有帳戶或登錄。我想檢查用戶是否購買了訂閱,並且the Google Play Android Developer API seems to provide this service。在這個簡單的Android應用案例中,我需要從OAuth 2.0中獲得什麼?
存在的問題(TL; DR):我應該使用OAuth爲 「web應用程序」, 「已安裝應用程序」 上述的 「服務應用程序」,或無?
問題:要開始使用此,有人告訴我:
訪問谷歌Play Android開發者API使用 OAuth 2.0網絡服務器流量認證。在您可以使用該API之前,您需要設置一個API控制檯項目,創建一個客戶端ID和 生成一個刷新令牌。 -source
不夠公平。有那麼繼續說安裝說明:
在第二頁上,選擇Web應用程序和設置重定向URI 和Javascript的起源。
我的應用程序訪問互聯網,但它是一個安裝Android應用程序,不一個Web應用程序,所以我沒有「重定向URI」或「JavaScript源」鏈接它。此外,這將需要用戶登錄,這是我不想要的,在我的情況下不是必需的(我只想檢查用戶是否購買了訂閱)。
因此,如果不是「Web應用程序」,我嘗試創建一個「已安裝的應用程序(Android)」,這仍然需要用戶登錄才能管理用戶的資源。
我不想要這個。還有第三種替代稱爲「服務帳戶」,不需要用戶登錄:當你想要處理 「自己的」資源的服務
服務帳戶被使用(例如,一個應用程序管理計算 引擎資源的引擎應用),而不是外部用戶 的資源(例如,標準OAuth流)。使用服務帳戶,應用程序將 成爲資源的所有者......如果您使用服務帳戶,則只會獲取有關服務購買的數據。 -source
我不知道這是什麼,我想在我的情況下...
最後,也是此選項:
最簡單的流程是一個在沒有結束需要用戶授權。 您仍然需要使用API密鑰來識別您的客戶端應用程序。-source
這看起來很完美!不過,我最初被告知,要使用Google Play Android開發人員API,我需要使用OAuth 2.0進行身份驗證,而且這不會使用客戶ID,我最初被告知我特別需要。