我可以仅使用 Google 帐户用户名和密码而不使用 OAuth 进行身份验证吗?如果没有,是否计划在未来版本的 Google Drive API 中支持这种身份验证?
我目前正在使用Google Documents List API,它只允许使用用户名和密码进行身份验证。所以我想知道我是否可以用 Google Drive API 做同样的事情。
我可以仅使用 Google 帐户用户名和密码而不使用 OAuth 进行身份验证吗?如果没有,是否计划在未来版本的 Google Drive API 中支持这种身份验证?
我目前正在使用Google Documents List API,它只允许使用用户名和密码进行身份验证。所以我想知道我是否可以用 Google Drive API 做同样的事情。
您是否有任何理由不能使用 OAuth 2.0 作为您的授权机制?
客户端登录目前已被弃用,您和您的用户最好使用 OAuth 2.0。
Drive SDK 文档以及各种客户端库项目页面中提供了多个代码示例,可帮助您入门。
如果您正在运行服务器应用程序,请考虑使用具有 OAuth2 和 Drive API 的服务帐户。这将允许您在服务器上运行应用程序,而无需用户在控制台或通过 UI 提供 OAuth2 凭据。如果您希望您的应用程序对具有特定帐户的文档进行操作,您也可以进行模拟。
GoogleCredentials credentials = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("[[SERVICE_ACCOUNT_EMAIL]]")
.setServiceAccountScopes(DriveScopes.DRIVE, DriveScopes.DRIVE_FILE,
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile")
.setServiceAccountPrivateKeyFromP12File(Auth.keyFile)
.setServiceAccountUser("[[impersonateduser@domain]]")
.build();
credentials.refreshToken();
我在某个地方(可能在这里)找到了这篇博文:http ://blog.databigbang.com/automated-browserless-oauth-authentication-for-twitter/ 。
我知道它与 Twitter 有关,但它使用相同的方法,所以我认为它只需要在名称上稍作调整。简而言之:如果脚本仅由服务器运行,请安装 Jython + HTMLUnit,模拟用户转到生成的授权链接并单击“允许访问”按钮并获取令牌。