/ / Verständnis der Google Developer Console - Android, OAUTH-2.0, Kryptographie, sha1, Youtube-Daten-API-V3

Grundlegendes zur Google Developer Console - Android, OAUTH-2.0, Kryptographie, sha1, youtube-data-api-v3

Ich bin ein wenig verwirrt in Bezug auf die Funktionsweise der Entwicklerkonsole.

Ich habe ein Projekt, in dem ich auf youtube Daten apiv3 zugreife. Ich habe mein Projekt erstellt und 4 Schlüssel bekommen:

  1. Browserschlüssel
  2. Serverschlüssel
  3. Web Client OAuth2.0 Client-ID-Geheimschlüssel
  4. Android-Schlüssel

Aus diesen werden die ersten drei von Google-Dienst automatisch generiert. Ich generierte Android-Schlüssel, indem ich SHA-1-Fingerabdruck des Projektes gebe. Ich habe folgende Fragen, auf die ich anscheinend nicht antworte:

  1. Warum bekomme ich zuerst drei automatisch generiert? Ich arbeite nicht auf Backends, sondern nur aus Neugier, was ist, wenn der Client den Serverschlüssel anstelle des Browserschlüssels verwendet?

  2. Ich denke, SHA-1 wird verwendet, um wie ein öffentlicher Schlüssel zu arbeitenKryptographie. 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 zugreifen undAktualisieren Sie Token ohne geheimen Schlüssel. 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 KEYS in meinem Projekt. Eine in google-services.json ist anders und in

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

ist anders!! Trotzdem funktioniert es. Wie??

Antworten:

1 für die Antwort № 1

Antwort 1:

Der Unterschied zwischen Server-Tasten und Browser-Tasten von Entwicklerkonsole

Serverschlüssel:

Erstellen und verwenden Sie einen Serverschlüssel für Ihre Anwendungläuft auf einem Server. 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 Ihrer Server zugelassen werden.

Browserschlüssel:

Erstellen und verwenden Sie einen Browserschlüssel, wenn Ihre Anwendung auf einem Client, z. B. einem 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 funktioniert auch mit keytool und SigningReports.

Antwort 4:

Sie können mehrere API-Schlüssel verwenden. Dies ist möglich, wenn Sie den API-Schlüssel in der Google Developer Console aktiviert haben und dann die API-Schlüssel in Ihrem Projekt verwenden 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="******************" />

1 für die Antwort № 2

Ihre Anfrage an Youtube erfolgt über Google PlayBedienung. 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 etc.

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 sich in einem Android-Gerät befinden, benötigen Sie keine Browser- und Serverschlüssel.

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


1 für die Antwort № 3

Korrigiere mich Wenn ich falsch liege.

  1. Browser-Taste: Nehmen wir an, Sie haben eine Website und von dort aus möchten Sie konsumiere die YouTube-API

    Server Key: Sagen wir, du baust deine eigene Backend API für deine App und es müssen Youtube API konsumieren

    Android Key: Sagen wir, du hast auch eine Android App und sie muss konsumieren Youtube API

    Sie können jeden API-Konsumenten separat mit verschiedenen Schlüsseln verfolgen. Sie kann austauschen (nicht sicher), aber das wird nur das Tracking durcheinander bringen.

  2. SHA hängt vom Keystore ab (debug / signed) und jedes System hat ein Unikat Debug Keystore. Sie können Ihren eigenen signierten Keystore erstellen.

  3. Was ist das Access Token im Vergleich zu Access Token Secret und Consumer Key im Vergleich zu Consumer Secret Ich denke, gilt für jeden oAuth

  4. Gut Youtube API, Google Map API oder jede 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 Tracking meine ich wie API-Quote, Treffer pro Sekunde, etc