Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Oauth2 Instagram API "redirect URI does not match registered redirect URI"

I am working on a Rails application which is in development mode and it can register with omniauth.

The host is

http://localhost:3000/

I'm using the gems:

gem 'omniauth'
gem 'omniauth-foursquare'
gem 'omniauth-instagram'

When I register through omniauth with Foursquare there's no problem at all. All the settings are right and my redirect_uri in the Foursquare developer settings equals to the host (localhost:3000)

However, if I fill in the exact same redirect_uri (localhost:3000) in the Instagram client manager*. Instagram gives me this:

{
 "code": 400,
 "error_type": "OAuthException",
 "error_message": "Redirect URI does not match registered             redirect URI"
}

Based upon this URL:

https://instagram.com/oauth/authorize?response_type=code&client_id=<ID>&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Finstagram%2Fcallback&state=18415adf24dd97873e61094f67c0fb7a94857fedf93e9d2e&scope=basic

* enter image description here

What am I doing wrong according to Instagram and how should this be fixed?

like image 453
Biketire Avatar asked May 14 '13 07:05

Biketire


People also ask

What should be the redirect URI in oauth2?

A redirect URI, or reply URL, is the location where the authorization server sends the user once the app has been successfully authorized and granted an authorization code or access token.

Where is OAuth redirect URI?

Show activity on this post. 2- Go to https://developers.facebook.com/apps/ -> your app -> Product -> Facebook Login (add it if didn't yet) -> Settings. Past the link you've copied into "Valid OAuth redirect URIs" box. Show activity on this post.

How does OAuth redirect URL work?

When you initiate an implicit or token auth flow, you provide a redirect URI with that request. After the user authenticates successfully, they will be redirected to the provided redirect URI, provided it exactly matches one of the redirect URIs configured on the oauth client.


2 Answers

Fixed the issue myself. Added localhost:3000/auth/instagram/callback as redirect_uri and it worked just fine.

like image 55
Biketire Avatar answered Oct 08 '22 01:10

Biketire


I needed to add

http://localhost:3000/users/auth/instagram/callback

as my callback URI because I'm using Devise.

like image 44
rubygrrl42 Avatar answered Oct 08 '22 03:10

rubygrrl42