我使用Instagram的饲料API展现在我的网站我的Instagram的帖子。但是,一些视频网址显示“URL签名过期”。
有我的解决方案吗?
Instagram的增加了URL签名,他们的媒体网址。
您可以使用正则表达式轻松去除URL签名: “VP * / {32} / {8} /。”
例如,在PHP:
preg_replace('/vp.*\/.{32}\/.{8}\//', '', $mediaUrl)
在另一方面,我不认为中移除该网址签名是最好的解决方案(仅仅是一个权宜之计)。好一个是再次调用Instagram的API,以获得新的URL。
UPDATE
看来,Instagram的当前检查URL签名,如果签名是不存在返回403“访问被拒绝”的错误,所以现在唯一的解决方案是,以获得新的媒体URL再次调用Instagram的API。
UPDATE 2018年4月
Instagram的已经关闭了他们的“api.instagram.com/v1/media/”端点所以现在它目前无法更新帖子的网址。
一个可能的解决方案是下载的媒体,并将它们存储在自己的服务器上(因为它违反了Instagram的API的条款,以便做到这一点,在你自己的风险,我不建议这个解决方案)。
另一种方法是调用原来的终点,你必须再次找到媒体(但目前很难管理与新的API速率限制的呼吁)。
你也可以在github一些非官方的Instagram的API,可以帮助你。
您可以使用媒体URL与一些额外的参数作为一个解决方案,以获得所需的图像,而不是使用直接图像链接。
例如
https://www.instagram.com/p/Bo7OXJ3hYM8/media/?size=m
注意附加/媒体/?大小=米
字母可以是用于不同图像尺寸T,M或升
这应返回您所需的图像
在写这篇文章的时候,你唯一的选择是存储或以某种方式缓存图像。
例如,你可以将图像存储在数据库中。 Instagram的平台策略需要删除的图像时,你的应用程序不再需要他们。
另外,如果您使用CDN可以通过图像代理服务于这些图像,然后设置在CDN长的到期日期。这样,你是不是存储在图像数据库中,但用户仍然可以看到他们的网址签名过期后。
只是按CTRL + S保存的页面,你就会有文件夹中的照片,你将它保存