使用Google API的CLI应用程序

时间:2018-12-27 09:04:13

标签: java oauth-2.0 google-api google-oauth google-photos-api

我想创建一个应用程序,将我的所有照片下载到Google相册中。我认为使用可用的API应该很容易。

这应该是一个CLI应用程序,它将从cron定期运行。 但是当我查看Google Photos API时,它们使用的是OAuth2。 该示例显示了FixedCredentials的用法:

PhotosLibrarySettings settings =
     PhotosLibrarySettings.newBuilder()
    .setCredentialsProvider(
        FixedCredentialsProvider.create(/* Add credentials here. */)) 
    .build();

问题是/* Add credentials here. */所在的部分。如何在那里提供我的用户凭据?实现Credentials的类很多,但它们看起来都不像一个类,可以让我在CLI应用程序中自动进行检索。

我从Google那里获得的唯一东西是我的应用程序的client_id和client_token,但是如何将其转换为访问/刷新令牌,以便我无需交互即可使用它?

我真的希望我不需要启动网络浏览器来下载我的照片。

1 个答案:

答案 0 :(得分:1)

Google照片库API仅接受OAuth 用户凭据 。这意味着需要用户完成Google OAuth Flow,这意味着基于浏览器的授权。

  

注意:Library API不支持服务帐户。您的   应用程序必须使用其他可用的OAuth 2.0流,例如OAuth   Web服务器应用程序2.0或移动和桌面应用程序的OAuth 2.0。

     

您的应用程序必须使用OAuth 2.0来授权请求​​。没有别的   支持授权协议。如果您的应用程序使用Google   登录后,会为您处理授权的某些方面。

此链接详细说明了这些要求:

Authentication and authorization scopes