Google API:浏览器密钥和Android密钥之间的区别?

时间:2014-07-13 16:49:13

标签: android google-api google-calendar-api

我尝试使用Google Calendar API,并且我已经生成了似乎的浏览器API密钥。但是在API控制台中,我还可以选择生成Android API密钥。两者有什么区别?我可以在Android应用程序中使用浏览器密钥吗?

2 个答案:

答案 0 :(得分:6)

我不确定在Android应用程序中使用浏览器密钥是否有效,但它确实没有意义。

来自Google API docs

  

通过控制台,您可以创建服务器,浏览器,Android和iOS API   键。创建密钥后,您可以限制密钥的使用位置。   可用的限制取决于密钥的类型。

     
      
  • 可以根据服务器的源IP地址限制服务器密钥。
  •   
  • 可以根据 HTTP引荐来限制浏览器密钥。
  •   
  • 可以根据包名称和证书SHA-1指纹限制Android密钥。
  •   
  • 可以根据捆绑包标识符限制iOS密钥。
  •   

看起来你必须指定一个网站作为基于浏览器的密钥的引用者。由于您不知道推荐人在Android应用中的含义,因此以这种方式进行操作并不合理。使用Android密钥,您可以按包名限制API使用。

此外:

  

因此,您的项目可以与服务器端组件结合使用   使用浏览器和/或移动组件,,不用担心妥协   如果浏览器密钥或移动密钥被泄露,您的服务器。

如果你使用两个不同的密钥,它可以让你确定一个是否被泄露,其他的则没有。这为您提供了更好的安全性。

答案 1 :(得分:1)

@ hichris123很好地解释了差异。但是,对于你的问题的第二部分,我想告诉你理想情况下你不应该在Android应用程序中使用浏览器密钥。

但是在一些场景中,比如在Android中使用place api时,你将不得不使用浏览器密钥而不是android密钥,因为Place API仅支持浏览器密钥或服务器密钥。它不支持android或IOS密钥。如果你尝试使用android密钥,那么API会给你一个错误说明:

"此IP,网站或移动应用程序无权使用此API密钥。从IP地址203.145.175.4收到的请求,空引用"

因此,在上述情况下,您必须在Android应用程序中使用浏览器密钥。