2012-07-04 9 views
16

Sto creando un'applicazione con l'API di Google Maps. Voglio poter avere una persona su un computer, guardare ciò che un'altra persona ha modificato su una mappa. Sto pensando di passare informazioni della mappa a un Google Fusion Table. L'altra persona sarà in grado di vedere tutto come un livello. Mi piacerebbe che il programma fosse eseguito dal browser dell'utente e non costruisse un sito web per questo.URI di reindirizzamento corretto per API Google e oauth 2.0

Per modificare le tabelle di fusione, è necessario ottenere accesso/token. Attualmente sto cercando di utilizzare questi script javascript per realizzare questo. ScriptSample.html, oauthWindow.html e gwt-oauth2.js. Questo è il working example.

Quando li eseguo, ottengo un errore che dice che redirect_URI non è corretto. Dice che il file che uso per reindirizzare non ha autorità. La mia prima domanda ovvia è: come posso assegnare il reindirizzamento all'autorità del file?

Nella mia console API, l'ho configurato come applicazione web lato client. Dovrei cambiarlo in un'applicazione installata?

attualmente, la mia origine JavaScript è: https: // localhost

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

Grazie

+2

Sei seriamente utilizzando un URI di callback basato su localhost? Significa che il server OAuth dovrebbe inviare la risposta a se stesso, il che non ha senso. Dovresti assolutamente usare qualche URL accessibile dalla rete esterna. –

+2

Scusa, ho sbagliato, devo correggermi. Gli URI di callback vengono utilizzati solo per reindirizzare il browser con il risultato dell'autorizzazione, pertanto un URI di callback basato su localhost potrebbe funzionare in teoria. D'altra parte, ha seri problemi di sicurezza, rendendo inutile l'intero metodo di controllo dell'URRI di callback. Di conseguenza, è comunque necessario fornire un callback accessibile dall'esterno. –

+0

Anche io ho problemi con questo. Per qualche strana ragione, google ha deciso che il mio URL di reindirizzamento, che è 'https: // something', dovrebbe essere convertito in' http: // something'. Questo è orribile perché il mio server ha un severo requisito per ssl/https, senza eccezioni. – Automatico

risposta

12

Non c'è nessun problema con l'utilizzo di un URL localhost per Dev work - ovviamente ha bisogno di essere cambiato quando si tratta di produzione.

Devi andare qui: e quindi seguire il collegamento per la Console API - collegamento nella sezione Passaggi di base. Quando hai compilato il nuovo modulo di domanda ti verrà chiesto di fornire un URL di reindirizzamento. Inserisci la pagina a cui vuoi andare quando l'accesso è stato concesso.

Quando si forma l'URL di Google oAuth, è necessario includere l'URL di reindirizzamento: deve essere una corrispondenza esatta o si avranno problemi. Inoltre deve essere UrlEncoded.

+0

Quindi, se voglio reindirizzare su una pagina ospitata su local, diciamo - localhost: 9090/index.html faccio questo URL esatto? – moaglee

+1

@mystikacid sì. È necessario includere anche la parte 'http: //' (protocollo) – PSWai