2012-07-04 20 views
16

Składam aplikację za pomocą interfejsu API Map Google. Chcę mieć jedną osobę na komputerze, oglądać, co inna osoba edytowała na mapie. Zastanawiam się nad przekazaniem informacji o mapie do Google Fusion Table. Ta druga osoba będzie widzieć wszystko jako warstwę. Chciałbym, aby program uruchamiał się po prostu z poziomu przeglądarki użytkownika i nie tworzył dla niego strony internetowej.Prawidłowe przekierowanie URI dla Google API i oauth 2.0

Aby edytować tabele syntezy, muszę uzyskać dostęp/tokeny. Obecnie próbuję użyć tych skryptów javascript, aby to osiągnąć. ScriptSample.html, oauthWindow.html i gwt-oauth2.js. To jest working example.

Po ich uruchomieniu pojawia się błąd z informacją, że parametr redirect_URI jest niepoprawny. Mówi, że plik, którego używam do przekierowania, nie ma uprawnień. Moje pierwsze oczywiste pytanie brzmi: w jaki sposób mogę nadać temu plikowi uprawnienia do przekierowania?

W mojej konsoli API mam ją skonfigurowaną jako aplikacja internetowa po stronie klienta. Czy powinienem go zmienić na zainstalowaną aplikację?

obecnie mój javascript pochodzenie jest: https: // localhost

przekierowania URI: https: //localhost/oauthWindow.html

Dzięki

+2

Czy poważnie używasz identyfikatora URI zwrotnego opartego na lokalnym hoście? Oznacza to, że serwer OAuth powinien wysłać odpowiedź do siebie, co nie ma znaczenia. Powinieneś zdecydowanie użyć adresu URL dostępnego z sieci zewnętrznej. –

+2

Przepraszam, myliłem się, muszę się poprawić. Identyfikatory URI wywołania zwrotnego są używane tylko w celu przekierowania przeglądarki z wynikiem autoryzacji, a zatem identyfikator URI wywołania zwrotnego oparty na lokalnym hoście może działać w teorii. Z drugiej strony ma poważne problemy z bezpieczeństwem, czyniąc całą metodę sprawdzania identyfikatora URI zwrotnym bezcelowym. W konsekwencji nadal powinieneś zapewniać wywołanie zwrotne dostępne z zewnątrz. –

+0

Mam również problemy z tym. Z jakiegoś dziwnego powodu Google zdecydował, że mój adres przekierowania, czyli "https: // coś", powinien zostać przekonwertowany na 'http: // coś'. To jest okropne, ponieważ mój serwer ma ścisłe wymagania dla ssl/https, bez wyjątków. – Automatico

Odpowiedz

12

nie ma problemu z użyciem URL dla localhost Praca deweloperska - oczywiście należy ją zmienić, jeśli chodzi o produkcję.

Należy przejść tutaj: https://developers.google.com/accounts/docs/OAuth2 , a następnie podążać za łączem do konsoli API - łącza w sekcji Podstawowe kroki. Po wypełnieniu nowego formularza wniosku użytkownik zostanie poproszony o podanie adresu URL przekierowania. Wstaw stronę, do której chcesz przejść po uzyskaniu dostępu.

Podczas tworzenia adresu URL Google oAuth - musisz podać adres URL przekierowania - musi to być ścisły odpowiednik lub wystąpią problemy. Musi być również kodowany przez UrlEnoded.

+0

Więc jeśli chcę przekierować na stronie hostowanej na lokalnym, powiedzmy - localhost: 9090/index.html czy podam ten dokładny adres URL? – moaglee

+1

@mystikacid tak. Musisz również dołączyć część 'http: //' (protocol) – PSWai

Powiązane problemy