我使用Instagram Feed API在我的网站上显示我的Instagram帖子。 但有些视频网址会显示“网址签名已过期”。
对我来说有什么解决方案吗?
答案 0 :(得分:18)
Instagram已在其媒体网址中添加了网址签名。
您可以使用此正则表达式轻松删除URL签名:" vp。* /。{32} /。{8} /"
例如在PHP中:
preg_replace('/vp.*\/.{32}\/.{8}\//', '', $mediaUrl)
另一方面,我不认为删除URL签名是最好的解决方案(只是一个快速解决方案)。好的方法是再次调用Instagram api以获取新的URL。
<强>更新强>
似乎Instagram正在检查URL签名并返回403&#34;访问被拒绝&#34;如果签名不存在则会出错,因此现在唯一的解决方案是再次调用Instagram API以获取新的媒体URL。
击>
2018年4月更新
Instagram关闭了他们的&#34; api.instagram.com/v1/media /&#34;端点所以现在它无法更新帖子网址。
一种可能的解决方案是下载媒体并将其存储在您自己的服务器中(我不建议使用此解决方案,因为它违反了Instagram API的条款,因此这需要您自担风险。)
另一种解决方案是再次调用原始端点,您可以再次找到媒体(但目前使用新的API速率限制来管理呼叫很困难)。
你也可以在github上找到一些可以帮助你的非官方Instagram API。
答案 1 :(得分:8)
您可以使用带有一些额外参数的媒体URL作为获取所需图像的解决方案,而不是使用直接图像链接。
例如
https://www.instagram.com/p/Bo7OXJ3hYM8/media/?size=m
通知插件 / media /?size = m
对于不同的图片尺寸,字母可以是 t , m 或 l
这应该返回您想要的图像
答案 2 :(得分:4)
在撰写本文时,您唯一的选择是以某种方式存储或缓存图像。
例如,您可以将图像存储在数据库中。 Instagram平台政策要求您在应用程序不再需要时删除图像。
或者,如果您使用CDN,则可以通过图像代理服务这些图像,然后在CDN上设置较长的到期日期。这样您就不会将图像存储在数据库中,但是在URL签名过期后,您的用户仍然可以看到它们。
答案 3 :(得分:-5)
只需按CTRL + S即可保存页面,然后将照片保存在保存它的文件夹中