在用户通过 Google 登录进行身份验证并被授权使用 Google Photos Library API 后,我不知道如何将凭据传递给 Google Photos Library API。
我正在开发一个移动应用程序(没有后端服务器,只是安装了Android应用程序)。用户的目标是:
身份验证(使用谷歌帐户)
授权应用程序使用Google照片库
管理照片。
第1点和第2点在我的项目中没问题。为此,我使用 Google 登录。一切正常。但第 3 点不起作用:我不知道如何在 PhotosLibrarySetting 对象中插入凭据:
PhotosLibrarySettings 设置 = PhotosLibrarySettings.newBuilder() .setCredentialsProvider(FixedCredentialsProvider.create("在此处添加凭据").build();
我尝试插入“credentials json”文件,例如
GoogleCredentials.fromStream(getAssets().open("system" + File.separator + "credentials.json"))
但仅适用于服务帐户密钥(在 Google API 控制台中),而我没有它。我只在 Google API 控制台中创建了 2 个凭据:一个用于 Android 的 oAuthClientID,一个用于 Web 客户端的 oAuthClientID(为 Google 登录自动创建)。下载最后一个客户端 ID 的 json 凭据不起作用。
我还尝试在使用 GoogleSignIn 进行身份验证和授权后使用从 GoogleSignInOptions (getIdToken 函数)检索的令牌,如下所示:
// acc为用户账号对应的对象
AccessToken tken = new AccessToken(acc.getIdToken(), new Date(System.currentTimeMillis()+3000000)); GoogleCredentials.newBuilder().setAccessToken(tken).build()))
但我收到一个错误:
UNAUTHENTICATED:请求的身份验证凭据无效。需要 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据。