在网站上展示用户的Instagram照片

4
我想在我的网站上展示最新的照片。我以前是使用Instagram API的旧版本来实现这个功能,但现在API已经更新了,我无法实现这个功能。
我在Instagram账户上创建了一个应用程序,并按照文档中描述的进行了所有的身份验证步骤,但它总是显示一个要求用户登录的屏幕。但是,即使用户没有登录,我也需要显示图片,这在新的API版本中是否可能?
附注:我在服务器端使用PHP。
谢谢。

添加代码片段和API的响应 - saurabh kamble
我正在按照文档中所描述的进行操作。我使用正确的client_id和redirect_url访问以下地址:https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code然后它会显示一个登录和授权屏幕。问题是,我需要一个访问令牌来显示照片,但是如果没有登录,我无法获取它。 - Leonardo Oberle
所以您想向访问您网站的人展示所有照片,对吗? - saurabh kamble
是的,那是正确的。 - Leonardo Oberle
我不知道这对你是否有帮助,但我偶然发现了一个网站(https://lightwidget.com/),它提供免费的Instagram Feed小部件,可以嵌入到你的网站上。他们已经更新了应用程序以符合Instagram的新API更改。 - Vince
2个回答

1
<?php
  function fetchData($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 20);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
  }
  $result = fetchData("https://api.instagram.com/v1/users/ID-GOES-HERE/media/recent/?access_token=TOKEN-GOES-HERE");
  $result = json_decode($result);
  foreach ($result->data as $post) {
    // Do something with this data.
  }
?>

来源


太好了!这部分对我来说没问题,但是如何获取access_token呢?API只会在用户登录并接受应用程序后才提供此令牌。我需要向所有访问者展示图片。 - Leonardo Oberle
@LeonardoOberle,请检查源链接,那里有一个示例。 - saurabh kamble
我明白了。但问题是,如果我按照它所说的那样做,我的访客需要登录Instagram并在查看我的图片之前接受应用程序的条款。即使我的图片都是公开的,我也不能再为未登录的用户显示我的图片吗? 我不知道该怎么做。 - Leonardo Oberle
@LeonardoOberle,你已经实现了这个逻辑吗? - saurabh kamble
@LeonardoOberle https://dev59.com/1mcs5IYBdhLWcg3w7II9 - saurabh kamble
显示剩余2条评论

1
您可以通过用户的认证来获取他的所有Instagram帖子。在新的API系统中,如果没有认证,您将无法使用用户数据。在新的API中,您可以获取他的帖子图片URL,并将其保存在您的数据库中。然后,您可以通过这些URL显示图像。

登录后,您可以获得自己的身份验证令牌。通过使用该令牌,您可以向每个人显示图像。 - Anik Saha
不,你不需要那样做。你只需要保存自己的令牌。通过你的身份验证令牌,你的用户可以看到你的图像。 - Anik Saha
很遗憾,我不能这样做...请查看他们的网站所说的内容:Instagram API需要身份验证 - 特别是代表用户发出的请求。经过身份验证的请求需要访问令牌。这些令牌对于每个用户都是唯一的,并且应该被安全地存储。访问令牌可能在未来的任何时间到期。...不要假设您的访问令牌永远有效。 - Leonardo Oberle
你说的方法是合法的。前往https://apigee.com/console/instagram创建您的令牌。使用您的令牌向他人展示您的照片。每周更新一次。尽管这是一种非常糟糕的方式。 - Anik Saha
好的。不幸的是,我不能这样做。这是客户网站,我不能为我做的所有网站都这样做。我想我将不得不停止在网站上显示Instagram照片。 - Leonardo Oberle
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接