2017-07-06 6 views
5

Ich bin ein wenig verwirrt hinsichtlich der Funktionsweise der Entwicklerkonsole.Grundlegendes zur Google Developer Console

Ich habe ein Projekt, in dem ich Youtube Daten apiv3 zugreifen. Ich habe mein Projekt erstellt und bekam 4 Tasten:

  1. Browser Key
  2. Server Key
  3. Web Client OAuth2.0 Client-ID Secret Key
  4. Android Key

Aus diesem heraus, Die ersten drei werden automatisch von Google Service generiert. Ich erzeugte android Schlüssel von SHA-1 Fingerabdruck project.I geben haben folgende Fragen, die ich scheine nicht beantwortet zu bekommen:

  1. Warum bekomme ich zuerst drei automatisch generiert? Ich arbeite nicht an Backends, also nur aus Neugier, wenn der Client den Serverschlüssel anstelle des Browserschlüssels verwendet? Jede Differenz?

  2. Ich denke, SHA-1 wird verwendet, um wie Kryptografie mit öffentlichen Schlüsseln zu arbeiten. Kommt es nur auf die Paket- und Entwicklungsumgebung an? Ich habe keytool dafür nicht verwendet, sondern direkt mit SigningReports in Studio gearbeitet. Was genau sind die Parameter, von denen der Fingerabdruck abhängt? Ich habe einen neuen SHA-1 erstellt, indem ich den Debug Keystore gelöscht habe. Android Studio regeneriert automatisch den Debug-Keystore. Wie genau funktioniert diese Kryptographie?

  3. Mein iOS-Kollege kann Tokens ohne geheimen Schlüssel abrufen und aktualisieren. AFAIK Für OAuth2.0 müssen wir ein Authentifizierungs-Token erhalten, es mit der Client-ID, dem geheimen Schlüssel und dem API-Schlüssel verwenden, um Zugang zu erhalten und Token zu aktualisieren. Wie machen sie das? Welche Rolle spielt hier der geheime Schlüssel?

  4. Am wichtigsten: Ich habe verschiedene API-Schlüssel in meinem Projekt. Eine in Google-services.json ist anders und in

youTubePlayerFragment.initialize (API_KEY, neue YouTubePlayer.OnInitializedListener()

anders !! Noch es funktioniert. Wie ??

+1

DownVoters bitte Erklärung zur Verfügung stellen? Ich denke, das ist eine absolut gültige Frage von einem Anfänger wie mir. Ich erwarte sicherlich nicht, alle Details von einer einzelnen Person zu bekommen, weil es aus verschiedenen Bereichen kommt. Aber Sie können zumindest beitragen, was Sie wissen, damit es für zukünftige Besucher hilfreich ist. –

Antwort

1

Antwort 1:

Der Unterschied zwischen Server und Browser-Tasten-Schlüssel von developer console

Server Schlüssel:

Erstellen und verwenden Sie einen Serverschlüssel, wenn Ihre Anwendung auf einem Server ausgeführt wird. Verwenden Sie diesen Schlüssel nicht außerhalb Ihres Servercodes. Zum Beispiel, betten Sie es nicht in eine Webseite ein. Beschränken Sie Ihren Schlüssel, um Quotendiebstahl zu verhindern, sodass Anforderungen nur von den Quell-IP-Adressen Ihres Servers zugelassen werden.

Browser Tasten:

erstellen und einen Browser-Schlüssel verwenden, wenn die Anwendung auf einem Client, wie ein Webbrowser ausgeführt wird. Um zu verhindern, dass Ihr Schlüssel auf nicht autorisierten Websites verwendet wird, dürfen Sie nur Verweise aus von Ihnen verwalteten Domänen zulassen.

Antwort 2:

Es wird auch mit keytool und SigningReports Funktionalität arbeiten.

Antwort 4:

können Sie mehrere api Tasten und ihre möglich, wenn Sie in Google Entwickler-Konsole aktiviert api Schlüssel haben und verwenden Sie die api Schlüssel in Ihrem Projekt bei projectroot/yourapp/src/debug/AndroidManifest.xml ex:

<!-- 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="******************" /> 
+0

Ich habe die Antwort auf die erste Frage immer noch nicht verstanden, aber da sie weniger Priorität hat, diskutiere ich nicht darüber. Ich habe meine Frage bearbeitet, weil ich glaube, dass es bezüglich der zweiten Frage ein Missverständnis gab. Was Ihre Antwort auf die vierte Frage anbelangt, dachte ich, dass google-services.json Schlüssel für alle Apis enthält, die diesem Projekt entsprechen. Warum hat es dann nur einen Schlüssel? –

1

Ihre Anfrage an Youtube erfolgt über den Google Play-Dienst. Sie binden das OAuth2.0-OAuth2.0-Token in Ihre Anfrage ein. Das OAuth2.0-Token trägt weiterhin Ihren speziellen Android-Schlüsseltyp. Verschiedene Android-Tasten sind Server, Browser, Android, IOS usw.

OAuth ist mit Ihrer Benutzerauthentifizierung verknüpft. OAuth weiter tragen und Android Key gibt Google Play Service - Google Play Service liest Informationen in Google Developer Console - um zu entscheiden, welche Art von Gerät (z. B. ISO, Browser, Android) fragt den Youtube-Server.

Wenn Sie in einem Android-Gerät sind, benötigen Sie keine Browser- und Serverschlüssel.

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

1

korrigiert mich wenn ich falsch liege.

  1. Browser-Schlüssel: Nehmen wir an Sie eine Website haben und von dort aus zu wollen konsumieren das YouTube-API

    Server Key: Lassen Sie uns sagen Sie Ihre eigenen Backend-api für Ihre App erstellen und es Notwendigkeit, Youtube API verbrauchen

    Android Key: Lassen Sie uns sagen, dass Sie auch eine Android App haben und es müssen Youtube API

    verbrauchen Sie jeden Verbraucher von API verfolgen können separate mit verschiedenen Schlüsseln. Sie können austauschen (nicht sicher), aber das wird nur die Verfolgung verwirren.

  2. SHA hängt vom Keystore ab (debug/signed) und jedes System hat einen eindeutigen Debug-Schlüsselspeicher . Sie können Ihren eigenen signierten Keystore erstellen.

  3. What is the Access Token vs. Access Token Secret and Consumer Key vs. Consumer Secret Ich denke, gilt für jede oAuth

  4. Well Youtube API, Google Map API oder andere API sind unabhängige Dienste. Wir müssen sie getrennt verfolgen, so dass wir unterschiedliche API_KEY pro Dienst pro Verbraucher haben (erklärt in 1).

Hinweis: Mit dem Tracking-I wie API-Quote bedeutet, Treffer pro Sekunde, etc

+0

Ich verstehe, dass SHA-1 ist einzigartig und hängt von Keystore, aber um genau zu sein meine Frage ist, wie ist es auf verschiedenen Maschinen. Mit welchen Dingen wird Schlüsselspeicher generiert und wie wird er verwendet, um einen API-Schlüssel und einen vollständigen Authentifizierungsmechanismus zu generieren? Ich habe von keytool (Teil von jre) gehört. Ich habe auch von anderen Tools wie OpenSSL und anderen gehört, aber keine klare Idee. Bitte sehen Sie sich meine Kommentare zu @shweta porwals Antwort zu 4. Und ja, ich habe später über 3 gelesen. Danke –

Verwandte Themen