2

我正在编写一个 PHP 应用程序来使用 Instagram 的 API 获取我的所有照片。但是,令我困惑的是,我在托管服务器上运行该应用程序,它运行良好,而在本地运行的同一个应用程序不起作用。

以下是有关应用程序工作流程的一些要点:

  1. 用户看到主页,系统会提示他“使用 Instagram 登录”
  2. 用户使用 Instagram 登录并授权该应用程序。
  3. Instagram 重定向用户。
  4. 然后,应用程序请求 access_token 并接收它。
  5. 使用 access_token,应用程序将发送对用户媒体的进一步请求
  6. 解析响应并且现在向用户提供图像的链接。

上述所有过程在我的托管服务器上都可以正常工作,但在“第 3 步”中失败。并将用户重定向到我的应用程序的主页。

问题是本地主机是redirect_uri。有没有人可以解决这个问题以在本地使用该应用程序?

PS:我在 Instagram 上注册了两个独立的客户端:一个用于本地托管开发,另一个用于 Web 服务器。

另外,我尝试过localtunnel。也没有帮助。

4

2 回答 2

6

我知道这是一个非常非常古老的问题。但对于那些希望找到解决方案的人来说:

instagram 目前不允许使用 localhost 或myvhost.test重定向 url 之类的东西,更重要的是它需要对 url 进行认证 (https)。

所以我能找到的唯一可行的解​​决方案是使用ngrok。你应该从 url 下载它,打开它并输入一个 localhost 虚拟域名和一个特定的端口号,如ngrok http myLocalUrl.test/app 80,按 Enter 键,它会给你两个临时公共链接。

ngrok在您关闭命令行之前,它将保持有效。您可以将链接定向到特定端口号,并将端口号定向到本地主机中应用程序的特定文件夹路径。ngrok如果您不理解我的提示,提供的教程很简单。

于 2018-08-23T05:52:03.157 回答
1

我正在处理这个问题,试图使用 NodeJS/Express 开发 Instagram 应用程序。

我通过使用计算机的外部本地 IP 而不是 localhost 解决了这个问题,你可以grep使用它。我假设你在 *nix 机器上,所以做一个非常简单(和粗略)

$ ifconfig | grep inet

这将返回一些 ip 和 MAC 地址,其中之一是您的外部 IP。然而,这很糟糕,因为这意味着每次切换 IP 时,您都必须使用 Instagram 更新应用程序的 redirect_url 以及更新依赖它的任何代码。

值得庆幸的是,存在诸如no-ip 之类的服务,它们基本上会为您提供免费的 DDNS 服务,因此您只需向它们注册一个主机名,然后将其放入您的 DEV env 代码以及您的开发客户端的重定向 url 中即可去!

于 2012-12-25T07:35:48.593 回答