Błąd 400 przy połączeniu do google api

0

Projekt: [USUNIĘTE NA WNIOSEK AUTORKI]
Dokumentacja z której korzystam: https://developers.google.com/youtube/v3/quickstart/java

Próbuję napisać program do odpytania API youtube
Dodałam identyfikatory URI a mimo to pokazuje mi się Błąd 400: redirect_uri_mismatch

Co robię źle?

0

Jak powinna wyglądać odpowiedź z API, czy ma być to JSON? Jeśli tak, co dostajesz po wpisaniu URI w przeglądarkę / Postmana? Czy w dokumentacji są przykładowe URI żądania?

0

Bez patrzenia w kod zgaduję, że chodzi o zwrotkę z OAutha.

Upewnij się, że dopisałaś redirect uri, który chcesz użyć do listy w panelu Google. No i że nie zrobiłaś jakiejś literówki.

0

@Marta95: Czy w URI powinien być podany "redirect uri"? Czy rejestrowałaś w Google jakąś domenę dla API? Czy jest to "localhost:8080"?

0

W dokumentacji jest do skopiowania cała klasa testowa w Javie i ona jest w moim projekcie, w redirect uri dodałam localhost:8080, czy powinnam coś innego dodać? W projekcie w pliku client_secret są uri, które dodałam

Redirect URI możesz ustawić jaki chcesz. Musisz go tylko dopisać do swojej aplikacji w Google Console.

0

@bakunet: nic nie rejestrowałam, po prostu skopiowałam klasę wygenerowaną z dokumentacji, żeby sprawdzić połączenie. Nie wiem co powinnam tam wpisać, nie rozumiem chyba za bardzo tego

0

@szatkus: Dopisałam i to jest w tym pliku .json co wpisałam tyle, że dalej mi się pokazuje ten błąd. Nie wiem czy nie powinnam wpisać czegoś innego ale nie wiem co

3

Dobra, tu jest problem:

Credential credential =
                new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");

Według dokumentacji: Constructor that starts the server on LOCALHOST and an unused port. Czyli ten port może być praktycznie dowolny i pewnie dlatego się wywala, bo jako redirect_uri ustawia coś innego niż masz w konfiguracji.

Ten obiekt można zbudować przez buildera, więc takie coś powinno zadziałać.

Credential credential =
                new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver.Builder().setPort(8080).build()).authorize("user");
0

@szatkus: Tak o to chodziło i działa. Dziękuję !!

1 użytkowników online, w tym zalogowanych: 0, gości: 1