api密钥,客户端ID和服务帐户有什么区别?

nbr*_*bro 12 php google-analytics symfony google-api-php-client difference

我需要从我的Symfony 2应用程序访问Google的服务,即Google Analytics,因此我必须使用Google api客户端(版本2).在访问Google Analytics的信息之前,我必须在Google API控制台中创建API密钥,客户端ID或服务帐户.

最后,我创建了一个服务帐户,并下载了一个文件.Google api客户端使用此文件授予对我的Google Analytics帐户及其各自收集信息的访问权限.

我的问题是:

  1. api密钥,客户端ID和服务帐户有什么区别?

  2. 什么时候创建/使用一个,为什么?

我没有看到任何详尽的文章解释了我在这个问题上的要求.

And*_*Fun 13

这个帖子很旧,但仍然添加了信息.将来可能会帮助别人.

Google需要使用唯一标识符将其与您的项目(使用您的Android软件包)绑定,以进行身份​​验证并管理流量或配额.

Oauth和API密钥是这样的唯一标识符.

OAuth 2.0客户端ID:如果您的应用程序使用OAuth 2.0协议,则使用OAuth客户端ID.OAuth用于创建Access令牌,而令牌又是唯一标识符.但是,用户需要同意. https://developers.google.com/identity/protocols/OAuth2

API密钥: API密钥是您使用控制台生成的唯一标识符.优点是用户不需要用户操作或同意.但是,与OAuth不同,您无法使用API​​密钥进行授权.当您想要的数据是公开的并且不需要用户身份验证(例如Google地图)时,请使用API​​密钥.

服务帐户:诸如Prediction API和Google Cloud Storage等Google API可以代表您的应用程序执行操作,而无需访问用户信息.在这些情况下,您的应用程序需要向API证明自己的身份,但不需要用户同意.同样,在企业方案中,您的应用程序可以请求对某些资源进行委派访问.对于这些类型的服务器到服务器交互,您需要一个服务帐户. https://developers.google.com/identity/protocols/OAuth2#serviceaccount


Eik*_*rff 10

API密钥对不访问个人数据的API进行身份验证.

客户端ID与你的谷歌帐户进行身份验证.

当您不想使用自己帐户(或任何真人帐户)的登录数据时,服务帐户会对您的应用程序进行身份验证.

您仍需要将服务帐户添加到要使用该服务帐户访问的任何Google服务.