生成访问令牌Instagram API,无需登录



所以我正在构建一个餐厅应用程序,我想要的功能之一是允许该应用程序的用户查看特定餐厅的Instagram帐户中的照片。我希望用户无需登录他们的Instagram帐户即可看到这一点,因此他们甚至不需要Instagram帐户即可使用它。

所以我已经阅读了这个答案如何在不以用户身份进行身份验证的情况下从 Instagram 获取用户的媒体?

我尝试了它所说的并使用了client_id(我在使用我的个人 Instagram 帐户注册我的应用程序时收到),但我仍然收到一个错误,说:

{
    meta: {
          error_type: "OAuthAccessTokenException",
          code: 400,
          error_message: "The access_token provided is invalid."
     }
}

我试图命中的端点是:

https://api.instagram.com/v1/users/search?q=[USERNAME]&client_id=[CLIENT ID]

那么我是否绝对需要一个访问令牌才能正常工作(因此必须强制用户登录)?

如果我这样做,那么有没有办法在不强制用户登录的情况下以某种方式生成访问令牌?

我相信有一种方法可以解决这个问题,因为流行的约会应用程序 Tinder 具有我正在寻找的所需功能,因为它允许您无需登录即可查看人们 Instagram 帐户中的照片!(我刚刚在 5 分钟前验证了这一点!

对此的任何帮助将不胜感激。

谢谢。

编辑 2018 年 4 月:在 Facebook 隐私案例之后,此端点立即停止服务。似乎我们需要直接在配置文件页面中解析嵌入<script>标签中的 JSON:

<script type="text/javascript">window._sharedData = {"activity_counts":...

欢迎任何更好的想法。


您可以使用最新的链接

GET https://www.instagram.com/{用户名}/?__a=1

以 JSON 格式获取最新的 20 篇帖子。希望你好好利用这一点。


编辑:其他方式不再有效:https://www.instagram.com/{用户名}/媒体/

Instagram 过去只允许大多数 API 请求,只需 client_id 且无需access_token,当天注册的应用程序仍然可以使用 Way,这就是一些应用程序能够在没有用户登录的情况下显示 Instagram 照片的方式。Instagram 更改了 API 规范,因此新应用程序必须access_token,旧应用程序必须在 2016 年 6 月之前更改。

解决此问题的一种方法是使用帐户生成的access_token来访问照片。在本地登录并获取access_token,将其用于所有API调用,它不应该更改,除非您更改密码,如果密码过期,则在服务器中重新生成和更新。

由于端点不再存在,我切换到 PHP 库 -https://github.com/pgrimaud/instagram-user-feed

使用作曲家安装了此库:

composer require pgrimaud/instagram-user-feed "^4.0"

获取源对象 -

$cache = new InstagramStorageCacheManager();
$api   = new InstagramApi($cache);
$api->setUserName('myvetbox');
$feed = $api->getFeed();

如何使用该对象的示例 -

foreach ($feed->medias as $key => $value) {
   echo '<li><a href="'.$value->link.'" target="_blank"><img src="'.$value->thumbnailSrc.'"></a></li>';
}

最新更新