2015-09-15 12 views
10

Procedura per riprodurre

  1. Registrare un redirect_uri nel client: http://example.com/publisher/auth
  2. diretto un utente al/OAuth/autorizzazione endpoint con l'redirect_uri tra cui un parametro di query:
    https://api.instagram.com/oauth/authorize/?client_id=xxx&redirect_uri=http%3A%2F%2Fexample.com%2Fpublisher%2Fauth%3FinviteId%3D00001000-cf33-11e4-9f26-8789dd0b3e01&response_type=code&scope=basic&type=web_server
    Per riferimento, quelli di query i parametri sono:
    client_id=xxx 
    redirect_uri=http%3A%2F%2Fexample.com%2Fpublisher%2Fauth%3FinviteId%3D00001000-cf33-11e4-9f26-8789dd0b3e01 
    response_type=code 
    scope=basic 
    type=web_server 
    
  3. Autenticare un utente instagram e consentire l'app.
  4. L'utente viene reindirizzato al redirect_uri corretto.
  5. Utilizzare il parametro di query del codice dall'URI reindirizzato per postare sull'endpoint Instagram/oauth/access_token.

comportamento previsto

L'endpoint risponde con 200 e un token di accesso.L'aggiunta di un parametro di query all'autore di Instagram redirect_uri non funziona?

comportamento effettivo

L'endpoint risponde con:


code=400 
error_type = 'OAuthException' 
error_message = 'Redirect URI doesn't match original redirect URI' 
 

Quello che ho indagato finora

Per confermare che si tratta di un problema con Instagram, ho controllato the API docs che molto chiaramente lo stato dovrebbe essere possibile aggiungere parametri di query all'URI di reindirizzamento. Ho anche provato a variare solo quel parametro di query. Ad esempio, quando sostituito con questo/OAuth/autorizzazione URL ottengo il comportamento previsto:

https://api.instagram.com/oauth/authorize/?type=web_server&client_id=xxx&redirect_uri=http%3A%2F%2Fexample.com%2Fpublisher%2Fauth&response_type=code&scope=basic

Per riferimento, i parametri di query sono:

client_id=xxx 
redirect_uri=http%3A%2F%2Fexample.com%2Fpublisher%2Fauth 
response_type=code 
scope=basic 
type=web_server

Note

Questa domanda è in realtà un duplicato di another question che in realtà non si è rivelato essere una domanda e che non ha mai avuto alcuna risposta.

Ho inviato un bug con Instagram, ma volevo vedere se qualcuno avesse trovato questo o trovato una soluzione alternativa.

+0

ottiene mai la risposta a questo? – Dap

+0

Anche io sto avendo lo stesso problema. L'hai mai capito? – emersonthis

+0

ha ancora lo stesso problema ... qualche soluzione? Grazie! – andufo

risposta

0

Potrebbe essere troppo tardi per rispondere a questa domanda. Ma ho affrontato lo stesso problema oggi & ottenuto questa domanda già pubblicato e la soluzione per il passaggio di parametri per l'autenticazione di URL è la seguente.

La tua parametro supplementare è type = server_web, tenendo in considerazione che, l'URL per ottenere il codice dovrebbe essere il seguente

https://www.instagram.com/oauth/authorize/?client_id=be1b911b487f4919b9c2fb7df0c4142c&redirect_uri=https://wpwifidemo.alepo.net/instagram/joinus/?type = server_web & response_type = codice & scope = base

E poi durante la chiamata API access token accodare il tuo parametro redirect_uri con il parametro passato (non lo stesso configurato in app). ad es.

redirect_uri = http% 3A% 2F% 2Fexample.com% 2Fpublisher% 2Fauth% 3FinviteId% 3D00001000-cf33-11e4-9f26-8789dd0b3e01? type = server_web

+0

Il parametro extra è in realtà 'inviteId = 00001000-cf33-11e4-9f26-8789dd0b3e01', non' type = web_server'. E non penso che la tua soluzione funzionerà, dal momento che aggiunge una stringa di query aggiuntiva a un URL che ha già una stringa di query. In pratica: http: //example.com/publisher/auth? InviteId = 00001000-cf33-11e4-9f26-8789dd0b3e01? Type = web_server', che è uno strano formato per un URL. –

1