2017-07-06 53 views
5

Jestem trochę zdezorientowany pod względem funkcjonowania konsoli programisty.Zrozumienie konsoli Google Developer Console

Mam projekt, w którym mam dostęp do danych YouTube apiv3. Stworzyłem mój projekt i dostaliśmy 4 klawiszy:

  1. Przeglądarka Key
  2. Server Key
  3. Web Client OAuth2.0 Client ID tajny klucz
  4. Androida Key

Poza tym, pierwsze trzy są generowane automatycznie przez usługę google. I wygenerowany klucz android dając SHA-1 odcisk palca project.I mają następujące pytania, które nie wydają mi się odpowiedział:

  1. Dlaczego mam trzy pierwsze auto generowane? Nie pracuję na backendach, więc po prostu z ciekawości, co jeśli klient używa klucza serwera zamiast klucza przeglądarki? Jakiekolwiek różnice?

  2. Przypuszczam, że SHA-1 jest używany do działania jak kryptografia klucza publicznego. Czy zależy to tylko od pakietu i środowiska programistycznego? Nie użyłem w tym celu narzędzia keytool, ale zrobiłem to bezpośrednio w funkcji SigningReports w Studio. Czym dokładnie są parametry, od których zależy odcisk palca? Stworzyłem nowy SHA-1, usuwając plik kluczy debugowania. Studio Android automatycznie regeneruje plik kluczy debugowania. Jak dokładnie działa ta kryptografia?

  3. Mój kolega iOS może uzyskać dostęp i odświeżać tokeny bez tajnego klucza. AFAIK Dla OAuth2.0 musimy zdobyć token uwierzytelniający, użyć go z identyfikatorem klienta, kluczem tajnym i kluczem API, aby uzyskać dostęp i odświeżenie tokena. Jak oni to robią? Jaką rolę odgrywa tu sekretny klucz?

  4. Co najważniejsze: Mam różne KLAWISZE API w moim projekcie. Jeden w Google services.json jest inny iw

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

różni !! Nadal działa. Jak ??

+1

DownVoters proszę podać wyjaśnienie? Myślę, że jest to całkowicie poprawne pytanie od nooba, takiego jak ja. Na pewno nie spodziewam się uzyskać wszystkich szczegółów od jednej osoby, ponieważ pochodzi ona z różnych dziedzin. Możesz jednak co najmniej podać to, co znasz, aby pomóc przyszłym odwiedzającym. –

Odpowiedz

1

odpowiedzi 1:

różnica między klawiszami Server i kluczy przeglądarkę developer console

kluczy serwera:

Utwórz i używaj klucza serwera, jeśli aplikacja działa na serwerze. Nie używaj tego klucza poza kodem serwera. Na przykład nie umieszczaj go na stronie internetowej. Aby zapobiec kradzieży kwot, należy ograniczyć klucz, aby żądania były dozwolone tylko ze źródłowych adresów IP serwerów.

klucze Przeglądarka:

Tworzenie i używanie klucza przeglądarki, jeśli aplikacja działa na klienta, takich jak przeglądarka internetowa. Aby uniemożliwić korzystanie z klucza w nieautoryzowanych witrynach, zezwalaj tylko na odesłania z domen, którymi administrujesz.

Odpowiedź 2:

To będzie pracować z keytool i SigningReports funkcjonalności zbyt.

Odpowiedź 4:

Można użyć wielu kluczy API i jego możliwy, gdy masz włączoną klucz API w konsoli programisty Google, a następnie za pomocą klawiszy API w projekcie na 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

Wciąż nie zrozumiałem odpowiedzi na pierwsze pytanie, ale ponieważ jest mniej priorytetowy, nie omawiam tego. Zmieniłem moje pytanie, ponieważ uważam, że nie było nieporozumień co do drugiego pytania. Jeśli chodzi o odpowiedź na 4 pytanie, pomyślałem, że google-services.json zawiera klucze do wszystkich apisów odpowiadających temu projektowi. Dlaczego ma wtedy tylko jeden klucz? –

1

Twoja prośba do Youtube dzieje się za pośrednictwem usługi Google Play. Osadzasz token OAuth2.0 OAuth2.0 w swoim żądaniu. Token OAuth2.0 dalej przenosi Twój szczególny typ klucza Android. Różne klucze Android to: Serwer, przeglądarka, Android, IOS itd.

OAuth jest związany z uwierzytelnianiem użytkownika. Dalsze przenoszenie OAuth i klucz Android daje usługę Google Play - usługa Google Play odczytuje informacje z Konsoli programisty Google - aby zdecydować, który konkretny typ urządzenia (np. Iso, przeglądarka, Android) pyta serwer Youtube.

Jeśli korzystasz z urządzenia z systemem Android, nie potrzebujesz kluczy przeglądarki i serwera.

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

1

mnie poprawić, jeśli się mylę.

  1. klucz Przeglądarka: Powiedzmy, że masz stronę internetową i stamtąd chcesz zużywają API YouTube

    Server Klucz: Powiedzmy, że można zbudować swój własny backend API dla aplikacji i potrzeba konsumować Youtube API

    Android Klucz: Powiedzmy, że masz również aplikację na Androida i to należy spożywać Youtube API

    Możesz śledzić każdy konsument API oddzielnej ly z różnymi kluczami. You może wymieniać (nie jestem pewien), ale to po prostu bałagan śledzenia.

  2. SHA zależy od magazynu kluczy (debug/podpis), a każdy system ma unikatowy magazyn kluczy debugowania . Możesz utworzyć własny podpisany magazyn kluczy.

  3. What is the Access Token vs. Access Token Secret and Consumer Key vs. Consumer Secret myślę dotyczy wszelkich OAuth

  4. Dobrze Youtube API, Google Map API lub inny API są niezależne usługi. Musimy śledzić je osobno, abyśmy mieli różne API_KEY na usługę na konsumenta (wyjaśnione w 1).

Uwaga: Poprzez śledzenie Znaczy jak kontyngentu API, uderza na sekundę itp

+0

Rozumiem, że SHA-1 jest wyjątkowy i zależy od magazynu kluczy, ale dokładniej moje pytanie brzmi: jak to jest inne na różnych maszynach. Z jakich rzeczy jest generowane pliki kluczy i jak jest używany do generowania klucza API i całego mechanizmu uwierzytelniania. Słyszałem o keytool (część jre). Również słyszałem o innych narzędziach, takich jak OpenSSL i innych, ale nie mam jasnego pomysłu. Proszę spojrzeć na moje komentarze na @shweta porwals odpowiedź na temat 4. I tak, później przeczytałem około 3. Dzięki –