【问题标题】:How can I provide public access to my photos如何提供对我的照片的公开访问权限
【发布时间】:2019-05-12 10:45:40
【问题描述】:

我想构建一个小型 js 库,可以从我的帐户中读取特定相册并将其中的照片显示为幻灯片。

在本指南 (https://developers.google.com/photos/library/guides/get-started) 中,要访问 API,我们需要 ClientID 和 Secret。有没有办法使用某种类型的公钥来访问 API 以进行只读访问?这样我(照片的提供者)就不必每次都登录了?

【问题讨论】:

    标签: javascript google-photos google-photos-api


    【解决方案1】:

    通过 OAuth2 用户身份验证使用 Google 照片库 API。通过 API 发出的所有请求都是代表用户发出的。不支持公共 API 密钥或服务帐户。

    OAuth 令牌在特定时间后过期,该时间作为 OAuth 身份验证请求的一部分返回。您可以使用 刷新令牌 来检索过期的新访问令牌。如果您想在没有明确的交互式用户交互的情况下执行此操作,则需要授权您的应用程序进行离线访问。好消息是身份验证客户端库会为您处理这个问题。

    如果您使用的是 Google 登录(例如在 Android 上),您可以检查用户是否已经使用 GoogleSignIn.getLastSignedInAccount(this) 登录,因此您无需再次提示访问。如果您想从后端发出这些离线请求,您也可以enable server-side access。

    如果您使用任何Google OAuth client libraries,您可以指定“离线”参数作为初始登录请求的一部分。例如,在 Java 中,您可以在创建期间在 GoogleAuthorizationCodeFlow.Builder 上设置访问类型:.setAccessType("offline")。

    【讨论】:

    • 未来是否会有用于 Google Photos 的 Node.js 客户端库?我正在考虑借助 Firebase 的云功能在我的网站上实现一个照片库。
    • @individual8 - Node.js 客户端库在我们的雷达上,但我们没有时间表。您可以从 node.js 直接对 REST API 进行直接 HTTP 调用,例如使用请求库。我们在 GitHub 上有一个示例:github.com/googlesamples/google-photos
    • 我已经使用过 REST API。但是在访问令牌过期后实现 OAuth 令牌检索的问题似乎很麻烦。非常感谢任何我可以轻松解决此问题的指针。
    猜你喜欢
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 2013-03-28
    • 2011-02-19
    • 1970-01-01
    • 2022-01-13
    • 2021-11-03
    相关资源
    最近更新 更多