Google drive api 我必须按一下吗;“允许访问”;每次我连接?googledrivesdkapi

Google drive api 我必须按一下吗;“允许访问”;每次我连接?googledrivesdkapi,google-drive-api,Google Drive Api,我编写了将刷新和访问令牌保存在数据库中的calss。我也可以通过刷新令牌生成访问令牌。一切正常。我正在使用web应用程序。现在我还有一个问题: (一) 例如,我已经保存了刷新令牌。然后,如果另一个人来了,我应该检查那个人在我的数据库中是否有刷新令牌,以生成她的访问令牌。但我应该先有她的用户ID (二) 要获取用户ID,我需要她的凭据 例如: Oauth2.Builder builder = new Oauth2.Builder(new NetHttpTransport(), new Jackso

我编写了将刷新和访问令牌保存在数据库中的calss。我也可以通过刷新令牌生成访问令牌。一切正常。我正在使用web应用程序。现在我还有一个问题:

(一) 例如,我已经保存了刷新令牌。然后,如果另一个人来了,我应该检查那个人在我的数据库中是否有刷新令牌,以生成她的访问令牌。但我应该先有她的用户ID

(二) 要获取用户ID,我需要她的凭据

例如:

Oauth2.Builder builder = new Oauth2.Builder(new NetHttpTransport(), new JacksonFactory(), credentials);
Oauth2 userInfoService = builder.build();      
Userinfo userInfo= userInfoService.userinfo().get().execute();
(三) 要获取凭据,我需要授权代码:

Credential credentials = exchangeCode(authorizationCode);
(四) 要获取授权代码,用户应该单击“允许访问”以检索该代码?是这样吗

例如:

Oauth2.Builder builder = new Oauth2.Builder(new NetHttpTransport(), new JacksonFactory(), credentials);
Oauth2 userInfoService = builder.build();      
Userinfo userInfo= userInfoService.userinfo().get().execute();
HttpTransport HttpTransport=新的NetHttpTransport(); JacksonFactory jsonFactory=新JacksonFactory()

并获取将检索自动化代码的URL:

flow.newAuthorizationUrl().setRedirectUri(REDIRECT_URI).build()

例如URL:

https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=695230079990-bus3d9gp31vvv64qq5n4ma9mk8vtc1ck.apps.googleusercontent.com&redirect_uri=http://localhost/oauth2callback&response_type=code&scope=https://www.googleapis.com/auth/drive.file%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/userinfo.profile

必须有一个人每次尝试连接到驱动API时都单击该按钮吗?我看到web应用程序,其中一个人只单击该按钮一次。如何在不每次单击“允许访问”的情况下获取自动化代码。我只需单击一次。

用户不必在每次运行应用程序时授予其访问权限。您将其凭据存储在数据库中,并在需要时重用它们

查看《Java DrEdit指南》以获取完整的示例应用程序,该应用程序演示了如何为每个请求获取完整的凭据集: