【问题标题】:When Service Account should be used to access google api?何时应使用服务帐户访问 google api?
【发布时间】:2015-12-17 20:51:34
【问题描述】:

我正在尝试使用 google api 从 gmail 帐户获取新电子邮件。但是阅读文档我发现有两种类型可以访问 api 第一种未经授权(使用 json 凭据),第二种是服务帐户(使用 p12 证书和密钥)

不明白这个访问有什么区别?我到底应该使用什么?

谢谢

【问题讨论】:

    标签: google-api gmail google-oauth gmail-api service-accounts


    【解决方案1】:

    Oauth2 是您正在查看的第一个类型。使用 Oauth2 会向必须批准您访问的用户显示同意屏幕。使用你想访问用户的 Gmail 帐户,你想访问用户的谷歌日历,你想访问用户的谷歌驱动器。

    使用service account 访问是通过获取服务帐户电子邮件地址并将其添加为相关数据的用户来预先授权的。用法:您希望允许其他用户将文件上传到您的 google drive 帐户,您可以将服务帐户电子邮件地址添加到 google drive 上的文件夹,然后服务帐户将能够上传到该文件夹​​而无需提示任何用户获取权限。

    当您想要访问用户帐户时使用 Oauth2,当您想要访问由开发者控制的帐户时使用服务帐户。

    如果您想访问用户的 Gmail 帐户,您需要使用 Oauth2,您无法授予其他用户访问您的 Gmail 的权限,因此无法授予服务帐户访问权限。

    【讨论】:

    • 谢谢。所以主要区别是我会看到弹出提示在第一个变体中进行授权,而第二个变体已经包含授权。对吗?
    • 是的。我喜欢按照授权来考虑服务帐户。您在设置服务帐户时已授予权限。例如,将服务帐户电子邮件地址添加为 google 日历上的用户可以使其访问日历。如果它是用户,您必须弹出身份验证窗口并询问他们我可以查看您的数据。查看我的初学者谷歌开发系列。可能会帮助daimto.com/google-development-beginners
    • @DaImTo 感谢您的回答:您知道使用服务帐户是否有任何限制?
    • 不假设您有权预自动化服务帐户。
    猜你喜欢
    • 2014-02-01
    • 2018-10-06
    • 2013-08-30
    • 2020-04-13
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多