我可以使用Google帐户的用户名和密码进行身份验证,而不是使用OAuth吗?如果没有,是否计划在未来版本的Google Drive API中支持此类身份验证?
我目前正在使用Google Documents List API,它允许使用用户名和密码进行身份验证。所以我想知道我是否可以使用Google Drive API做同样的事情。
答案 0 :(得分:4)
您是否有任何理由不能使用OAuth 2.0作为授权机制?
客户端登录目前为deprecated,您和您的用户最好使用OAuth 2.0。
Drive SDK documentation以及各种客户端库项目页面中提供了多个代码示例,以帮助您入门。
答案 1 :(得分:0)
如果您运行的是服务器应用程序,请考虑使用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();
答案 2 :(得分:0)
我在某个地方(可能在这里)发现了这篇博文:http://blog.databigbang.com/automated-browserless-oauth-authentication-for-twitter/。
我知道这是关于Twitter的,但它使用相同的方法,所以我认为它只需要对名称进行一些调整。简而言之:如果脚本仅由服务器运行,请安装Jython + HTMLUnit,模拟用户转到生成的授权链接并单击“允许访问”按钮并获取令牌。