了解Google Developer Console

时间:2017-07-06 11:50:50

标签: android oauth-2.0 cryptography sha1 youtube-data-api

我对开发者控制台功能感到有些困惑。

我有一个项目,我在其中访问youtube数据apiv3。我创建了我的项目并获得了4个键:

  1. 浏览器密钥
  2. 服务器密钥
  3. Web客户端OAuth2.0客户端ID密钥
  4. Android Key
  5. 除此之外,前三个是由谷歌服务自动生成的。我通过给出项目的SHA-1指纹生成了android密钥。我有以下问题,我似乎没有得到答案:

    1. 为什么我会自动生成前三个?我不在后端工作,所以只是出于好奇,如果客户端使用服务器密钥而不是浏览器密钥?有什么不同吗?

    2. 我猜SHA-1习惯像公钥加密一样工作。它仅依赖于包和开发环境吗?我没有使用keytool,但直接使用Studio中的SigningReports功能。指纹所依赖的参数究竟是什么?我通过删除调试密钥库创建了新的SHA-1。 Android studio会自动重新生成调试密钥库。此密码学究竟是如何工作的?

    3. 我的iOS同事可以在没有密钥的情况下访问和刷新令牌。 AFAIK对于OAuth2.0,我们需要获取身份验证令牌,将其与客户端ID,密钥和API密钥一起使用以获取访问权限并刷新令牌。他们如何做到这一点?秘密密钥在这里扮演什么角色?

    4. 最重要的是:我的项目中有不同的API KEYS。 google-services.json中的一个与

    5. 不同

      youTubePlayerFragment.initialize(API_KEY,新的YouTubePlayer.OnInitializedListener()

      不同!!它仍然有效。如何??

3 个答案:

答案 0 :(得分:1)

答案1:

来自developer console

的服务器密钥和浏览器密钥之间的区别

服务器密钥:

如果您的应用程序在服务器上运行,请创建并使用服务器密钥。不要在服务器代码之外使用此密钥。例如,不要将其嵌入网页中。为防止配额被盗,请限制您的密钥,以便只允许来自您的服务器的请求。源IP地址。

浏览器键:

如果您的应用程序在客户端(例如Web浏览器)上运行,请创建并使用浏览器密钥。为防止您的密钥在未经授权的网站上使用,请仅允许您管理的域中的推介。

答案2:

它也适用于keytool和SigningReports功能。

答案4:

您可以在google开发者控制台中启用api密钥时使用多个api密钥,然后在projectroot/yourapp/src/debug/AndroidManifest.xml ex:

中使用项目中的api密钥
<!-- Goolge Maps API Key -->
<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="******************" />    

<!-- Google Places API Key -->
<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="******************" />   

答案 1 :(得分:1)

您对Youtube的请求通过Google Play服务发生。您将OAuth2.0 OAuth2.0令牌嵌入到您的请求中。 OAuth2.0令牌进一步包含您特定类型的Android密钥。不同的Android密钥是服务器,浏览器,Android,IOS 等。

OAuth与您的用户身份验证相关联。 OAuth进一步携带和Android Key提供Google Play服务 - Google Play服务在Google Developer Console中读取信息 - 决定哪种特定类型的设备(例如,iso,浏览器,Android)正在询问Youtube服务器。

如果您使用的是Android设备,则不需要浏览器和服务器密钥。

https://developers.google.com/youtube/android/player/register

答案 2 :(得分:1)

纠正我如果我错了。

  1. 浏览器密钥:假设您有一个网站,您可以从那里开始             使用youtube API

    服务器密钥:假设您为自己的应用程序构建了自己的后端API            需要使用Youtube API

    Android Key:假设您还拥有Android应用,需要消费             Youtube API

    您可以使用不同的密钥分别跟踪API的每个消费者。您 可以互换(不确定),但这只会弄乱跟踪。

  2. SHA依赖于密钥库(debug / signed),每个系统都有唯一的 调试密钥库。您可以创建自己的签名密钥库。

  3. What is the Access Token vs. Access Token Secret and Consumer Key vs. Consumer Secret我认为适用于任何oAuth

  4. Youtube API,Google Map API或任何其他API都是独立的服务。我们需要单独跟踪它们,因此每个消费者每个服务都有不同的API_KEY(在1中解释)。

  5. 注意:通过跟踪,我的意思是像API配额,每秒点击次数等