Ashwin
Ashwin

Reputation: 1960

Instagram redirect-uri fails for localhost

I am writing a PHP app to fetch all my photos with Instagram using their API. However, what puzzles me is, I run the app on my hosted server it works perfectly fine and the same app running locally does not work.

Here are some points on the app workflow:

  1. The user sees the homepage and he will be prompted with 'sign-in with Instagram'
  2. User signs in with Instagram and authorizes the app.
  3. Instagram redirects the user.
  4. The app then makes a request for access_token and receives it.
  5. Using the access_token, the app will send further requests for user media
  6. The response is parsed and the links to the images are now provided to the user.

All the above mentioned process works fine on my hosted server but fails at 'Step 3.' and redirects user to home page of my app.

The problem is localhost being the redirect_uri. Does anyone have a solution to this problem to use the app locally?

P.S: I have registered two separate clients on Instagram: one for locally hosted development and the other on a web server.

Also, I have tried localtunnel. Did not help either.

Upvotes: 2

Views: 5325

Answers (2)

I know its a very very very old Question. but for those who get to this page hoping a solution:

instagram currently does not allow to use something like localhost or myvhost.test in redirection url, whats more it requires the url to be certified (https).

so the only working solution I could find is using ngrok. you should download it from the url, open it and type a localhost virtual domain name along with a specific port number like ngrok http myLocalUrl.test/app 80, hit enter and it will gives you two temporary public links.

it will remain valid until you close the ngrok command line. you can direct the link to a specific port number and direct the port number to specific folder path of the application in your localhost. the tutorials provided by ngrok is simple enough if you did not understand my hints.

Upvotes: 8

Travis Kaufman
Travis Kaufman

Reputation: 2937

I was dealing with this issue trying to develop an Instagram App using NodeJS/Express.

I got around this by using my computer's external local IP rather than localhost, which you can grep for. I assume you're on a *nix machine, so do a very simple (and crude)

$ ifconfig | grep inet

which will return you a few ip and MAC addresses, one of them being your external IP. However this is lousy because it means every time you switch IPs you'll have to update your application's redirect_url with Instagram as well as update any code that relies on it.

Thankfully, there exists services like no-ip that will basically provide free DDNS service to you, so you need simply register a hostname with them and then drop that into your DEV env code as well as your development client's redirect url and you're set to go!

Upvotes: 1

Related Questions