所以我正在构建一个餐厅应用程序,我想要的一个功能是允许该应用程序的用户查看来自特定餐厅的Instagram帐户的照片。 而且我希望用户能够在不必登录他们的Instagram帐户的情况下看到这一点,因此他们甚至不需要Instagram帐户来实现这一点。
所以我已经阅读了这个答案How can I get a user's media from Instagram without authenticating as a user?
我尝试了它所说的并使用了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分钟前验证了这一点!)
对此的任何帮助都将非常感激。
感谢。
答案 0 :(得分:5)
编辑2018年4月:在facebook隐私案例之后,该端点立即停止服务。我们似乎需要直接在个人资料页面中解析<script>
标记中嵌入的JSON:
<script type="text/javascript">window._sharedData = {"activity_counts":...
欢迎任何更好的想法。
您可以使用最新的链接
获取https://www.instagram.com/ {username} /?__ a = 1
以JSON格式获取最新的20篇帖子。希望你能很好地利用它。
编辑:其他方式不再有效: <击> https://www.instagram.com/ {名} /媒体/ 击>
答案 1 :(得分:1)
Instagram过去只允许client_id
而没有access_token
的大多数API请求,当天注册的应用程序仍然可以使用,这就是一些应用程序如何能够在没有用户登录的情况下显示Instagram照片。
Instagram已更改API规范,因此新应用必须获得access_token
,旧应用必须在2016年6月之前更改。
解决此问题的一种方法是使用您帐户生成的access_token
来访问照片。在本地登录并获取access_token
,将其用于所有API调用,不应更改,除非您更改密码,如果它已过期,请在服务器中重新生成和更新。
答案 2 :(得分:1)
由于端点不再存在,我切换到PHP库 - https://github.com/pgrimaud/instagram-user-feed
使用composer安装此lib:
composer require pgrimaud/instagram-user-feed "^4.0"
获取Feed对象 -
$cache = new Instagram\Storage\CacheManager();
$api = new Instagram\Api($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>';
}