Aru*_*ngh 23 http http-error http-status-code-403 instagram instagram-api
我正在使用Instagram feed API在我的网站上显示我的Instagram帖子.但是某些视频网址显示" 网址签名已过期 ".
对我有什么解决方案?
Jor*_*rdi 18
Instagram已在其媒体网址中添加了URL签名.
您可以使用此正则表达式轻松删除URL签名:"vp.*/.{32} /.{8} /"
例如在PHP中:
preg_replace('/vp.*\/.{32}\/.{8}\//', '', $mediaUrl)
Run Code Online (Sandbox Code Playgroud)
另一方面,我不认为删除URL签名是最好的解决方案(只是一个快速修复).好的方法是再次调用Instagram api以获取新的URL.
UPDATE
似乎Instagram正在检查URL签名并且如果签名不存在则返回403"拒绝访问"错误,因此现在唯一的解决方案是再次调用Instagram API以获取新的媒体URL.
更新2018年4月
Instagram已经关闭了他们的"api.instagram.com/v1/media/"端点,所以现在目前无法更新帖子网址.
一种可能的解决方案是下载媒体并将它们存储在您自己的服务器中(我不建议使用此解决方案,因为它违反了Instagram API的条款,因此这需要您自担风险).
另一个解决方案是调用原始端点,您可以再次找到媒体(但目前使用新的API速率限制来管理调用很困难).
您也可以在github上找到一些可以帮助您的非官方Instagram API.
Vla*_*llo 15
您可以使用带有一些额外参数的媒体URL作为获得所需图像的解决方案,而不是使用直接图像链接。
例如
https://www.instagram.com/p/Bo7OXJ3hYM8/media/?size=m
Run Code Online (Sandbox Code Playgroud)
注意插件/ media /?size = m
对于不同的图片尺寸,字母可以是t,m或l
这应该返回您想要的图像
参考:https : //www.instagram.com/developer/embedding/
在撰写本文时,您唯一的选择是以某种方式存储或缓存图像。
例如,您可以将图像存储在数据库中。Instagram 平台策略要求您在应用程序不再需要图像时删除它们。
或者,如果您使用 CDN,您可以通过图像代理提供这些图像,然后在 CDN 上设置长到期日期。这样您就不会将图像存储在数据库中,但在 URL 签名过期后,您的用户仍然可以看到它们。
归档时间: |
|
查看次数: |
12833 次 |
最近记录: |