0

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

这应该是一个从 cron 定期运行的 CLI 应用程序。但是当我查看 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,但是如何将其转换为访问/刷新令牌,以便我可以在没有交互的情况下使用它?

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

4

1 回答 1

1

Google Photos Library API 仅接受 OAuth User Credentials。这意味着用户需要完成 Google OAuth Flow,即基于浏览器的授权。

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

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

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

身份验证和授权范围

于 2018-12-27T10:57:54.727 回答