2

我正在尝试使用我自己的帐户将 java 应用程序验证到谷歌照片 api,根据文档,该帐户不支持 service_account。问题是 google-console 为 OAuth2 身份验证生成的文件不包含类型字段,只有通过为服务帐户创建凭据生成的文件才有效。

我尝试通过/不读取生成的文件来验证网络应用程序gcloud auth application-default login,该文件确实包含类型/client_id/client_secret/refresh_token。

例如:

        PhotosLibrarySettings settings =
                PhotosLibrarySettings.newBuilder()
                        .setCredentialsProvider(FixedCredentialsProvider.create(
                                GoogleCredentials.fromStream(
                                        new FileInputStream("credentials.json")
                                )))
                        .build();

任何可能有帮助的想法?

4

1 回答 1

2

我在尝试使用 Google API for Calendar 时遇到了同样的问题。如此处所述,您的 json 文件无效。他解释了如何使用“服务帐户密钥”凭据生成正确的 json。

我不知道这是否能解决你的问题,但它不适合我。这种类型的凭证需要一个 G Suit 帐户,这不是我想要的。我使用GoogleCredentials进行 OAuth2 身份验证,在我的 json 文件中,它唯一需要的是type、client_id、client_secretrefresh_token

类型接受“service_account”(对于 G Suit)和“authorized_user”(对于 OAuth2)。

于 2020-09-10T13:07:40.803 回答