2012-08-13 114 views
1

我正在編寫一個PHP應用程序,以使用他們的API獲取我所有的Instagram照片。然而,讓我感到困惑的是,我在我的託管服務器上運行應用程序,它工作得很好,並且在本地運行的同一個應用程序無法正常工作。Instagram redirect-uri失敗localhost

下面是關於應用程序的工作流程的一些要點:

  1. 用戶看到網頁上,他將被提示「登錄與Instagram的」
  2. 用戶登錄與Instagram的和授權的應用程序。
  3. Instagram重定向用戶。
  4. 該應用程序然後發出請求access_token並接收它。
  5. 使用access_token,應用程序將發送進一步的用戶媒體請求
  6. 響應被解析,並且圖像的鏈接現在提供給用戶。

上述所有過程都可以在託管服務器上正常工作,但在「步驟3」失敗。並將用戶重定向到我的應用程序的主頁。

問題是localhost是redirect_uri。有沒有人有解決這個問題在本地使用應用程序?

P.S:我在Instagram上註冊了兩個獨立的客戶端:一個用於本地託管開發,另一個用於Web服務器。

此外,我試過localtunnel。也沒有幫助。

+0

究竟是什麼問題 - instagram會不會允許您在redirect_uri中使用localhost?或者,您是否只能配置一個redirect_uri,並且您需要它爲部署服務器和本地開發工作? – JMM 2012-08-13 02:37:55

+0

@JMM,Instagram確實允許localhost作爲redirect_uri。問題是我無法重定向到本地主機。不,我有兩個單獨的客戶註冊;一個用於本地開發和另一個客戶註冊生產。 – 2012-08-13 02:41:58

+0

「問題是我無法重定向到本地主機。」怎麼了?你是說當收到recvirect到'localhost'的時候,你的瀏覽器結束了另一個主機名,而你是用於生產服務器的呢? – JMM 2012-08-13 02:49:12

回答

1

我正在處理這個問題,試圖使用NodeJS/Express開發Instagram應用程序。

我通過使用我的計算機的外部本地IP而不是本地主機,您可以grep爲解決此問題。我假設你是一個* nix的機器上,所以做一個很簡單的(粗)

$ ifconfig | grep inet 

將返回你幾個IP地址和MAC地址,其中一個是你的外部IP。然而,這很糟糕,因爲這意味着每次切換IP時,都必須更新應用程序的redirect_url與Instagram,並更新任何依賴它的代碼。

謝天謝地,有一些服務,如no-ip,基本上可以爲您提供免費的DDNS服務,所以您只需要註冊一個主機名,然後將其放入您的DEV env代碼以及開發客戶端的重定向url,重新開始!

+0

也沒有工作。 – andufo 2016-08-03 23:43:00

相關問題