2016-02-21 15 views
7

Próbowałem uruchomić przykładową aplikację, którą tu znalazłem Github Sample, utworzyłem certyfikat i utworzyłem klucz API i zastosowałem go zgodnie z instrukcjami. Ale kiedy wgrywam obraz, otrzymuję ten wyjątek. Nie wiem, gdzie popełniłem błąd. Czy coś przeoczyłem?Google Cloud Vision API Odmowa uprawnień

failed to make API request because { 
    "code": 403, 
    "errors": [{ 
     "domain": "global", 
     "message": "Requests from this Android client application <empty> are blocked.", 
     "reason": "forbidden" 
    }], 
    "message": "Requests from this Android client application <empty> are blocked.", 
    "status": "PERMISSION_DENIED" 
} 
+1

Powodzenia?Mam taki sam problem! –

+1

Mam również ten sam problem. – KnowIT

+1

@ amalan-dhananjayan Czy masz szansę ustawić identyfikator pakietu w kluczu API? Zgaduję, że może to być ten sam problem, który widzimy dla próbek iOS. https://github.com/GoogleCloudPlatform/cloud-vision/issues/16 Zobaczę, czy być może istnieje specyficzny dla Androida zestaw bibliotek klienckich, które powinniśmy używać zamiast Javy. –

Odpowiedz

5

Miałem ten sam problem. , ale rozwiązuję to.

Jeśli dodasz klucz API przeglądarki, Twój kod działa dobrze.

+0

Twoja odpowiedź jest poprawna. Działa, ale nie jest to właściwy sposób, nie możemy poprawnie śledzić przydziału danych przy pomocy tej szybkiej poprawki. @Tim_Swat pracuje nad tym problemem od Google. Dzięki kolego :) –

+1

działa dobrze, a nawet śledzić wykorzystanie mojego przypadku @AmalanDhananjayan – PSKapadia

+1

jak znaleźć klucz API przeglądarki ??? – Pranita

0

Co zmieniło się w projekcie Android? Upewnij się, że włączasz interfejs API do wizji w chmurze i włącz obsługę płatności. Wszystko, co musiałem zrobić, to dodać mój klucz API w MainActivity przy użyciu tej samej próbki z Github.

Spójrz na moją screenshot

+0

uwadze dzielenie czego dodany jako pakiet aplikacji. Mam do czynienia z tym samym problemem, ale fakturowanie jest włączone, ale każde żądanie kończy się niepowodzeniem. Próbka –

+0

sample.google.com.cloudvision jest tym, do czego przyłączyła się moja próba. Nie zmieniłem nazwy pakietu na własne. Mam nadzieję że to pomoże. – Derivative

+0

Czy możesz pomóc nam rozwiązać ten problem. Myślę, że powinno to mieć coś wspólnego z włączaniem rozliczeń. Stworzyłem klucz API i przypisałem go do zmiennej CLOUD_VISION_API_KEY. Czy włączono rozliczanie i api w chmurze dla mojego projektu, jak również –

5

Podejrzewam, że tworzysz klucz API systemu Android, ograniczony do Twojej aplikacji, z zarejestrowanym odciskiem palca Sha1.

To jest świetne! Niestety, non-android-specific Google API java client library nie obsługuje jeszcze w pełni żądań API dla Android API, takich jak android-specific. Oznacza to, że żądania API nie zawierają niektórych nagłówków, które uwierzytelniają klucz/aplikację do punktu końcowego interfejsu API, co powoduje ten błąd (należy zwrócić uwagę na client application <empty> w komunikacie o błędzie - <empty> będzie nazwą pakietu, jeśli żądanie zostało utworzone zgodnie z oczekiwaniami).

Ciągle szukam, co z tym zrobić - zaktualizuję, jeśli/kiedy znajdę.

+0

Czy miałeś szczęścia, aby znaleźć obejście? –

0

jakiś problem tutaj, i naprawię to !!!!!

wystarczy umieścić klucz serwera !!

enter image description here

nadzieję Pomocy ktoś

0

wierzę pomocą klawisza przeglądarki rozwiąże Twój problem. Ale właściwym rozwiązaniem jest użycie klucza OAuth. Tak jak powinna zrobić aplikacja dla systemu Android.

  1. Aby to zrobić, przejdź do sekcji poświadczeń z bocznego menu w Cloud Developer Console.
  2. Kliknij menu poświadczeń i wybierz ID klienta OAuth.
  3. Wybierz Typ aplikacji jako Android.
  4. Dodaj odpowiednią nazwę, na przykład klient Android Cloud Vision API
  5. Wpisz swój odcisk palca SHA1 w żądanym formacie. Korzystanie z wymienionego polecenia na ekranie.
  6. Wpisz nazwę pakietu dla swojej aplikacji, można go znaleźć w bloku defaultConfig o wartości .
  7. Kliknij Utwórz.

To jest wyciąg z pełnego samouczka: here.

Powiązane problemy