1

我一直在搞Google OAuth2和API,但它似乎並沒有達到我想要做的。我有一個我想要訪問的Google表單,但需要用戶登錄到他們的帳戶才能訪問它。我認爲GoogleDriveAPI能夠完美工作,除了它只獲取位於用戶驅動器中的文件,而不是像我試圖訪問的文件這樣的公共文件(假設我正在閱讀文檔)如何通過HTTP將某人登錄到Google

那麼通過HTTP向Google簽名的最佳方式是什麼?我正在設計的應用程序是一個調查應用程序,其想法是通過HTTP將用戶的響應發送到Google表單。通過要求登錄,它將防止來自單個人的多次提交。這是一個明智的方式嗎?或者,還有更好的方法?

回答

0

嘗試使用Google Sign-In。您需要在Google Developers Console上啓用Google+ API。您可以檢查tutorial上的步驟。

您還需要配置Google登錄才能將Google登錄集成到您的Android應用中。例如,要配置Google登錄請求用戶的ID和基本配置文件信息,您需要使用DEFAULT_SIGN_IN parameter創建一個GoogleSignInOptions對象。要請求用戶的電子郵件地址,請使用requestEmail選項創建GoogleSignInOptions對象。

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
     .requestEmail() 
     .build(); 

然後,在您登入活動的onCreate方法,創建訪問谷歌登錄的API和指定的選項GoogleApiClient對象。

mGoogleApiClient = new GoogleApiClient.Builder(this) 
     .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) 
     .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
     .build(); 

在GitHub上檢查此example

+0

我正在使用Google Sign In,但如果我嘗試連接到表單,它仍然會給我一個401 -unn授權。我嘗試在授權/承載請求屬性(HttpUrlConnection)中傳遞OAuth2令牌用於驅動器/谷歌加/表單API,但似乎沒有幫助。有任何想法嗎? – shotgunsam

+0

如果爲請求提供的授權憑證無效,您將收到401錯誤。檢查Authorization HTTP請求標頭的值。 – abielita