Instagram的/饲料API媒体URL显示“URL签名过期”

问题描述 投票:19回答:4

我使用Instagram的饲料API展现在我的网站我的Instagram的帖子。但是,一些视频网址显示“URL签名过期”。

有我的解决方案吗?

http instagram instagram-api http-status-code-403 http-error
4个回答
18
投票

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,可以帮助你。


12
投票

您可以使用媒体URL与一些额外的参数作为一个解决方案,以获得所需的图像,而不是使用直接图像链接。

例如

https://www.instagram.com/p/Bo7OXJ3hYM8/media/?size=m

注意附加/媒体/?大小=米

字母可以是用于不同图像尺寸T,M或升

这应返回您所需的图像

参考:https://www.instagram.com/developer/embedding/


4
投票

在写这篇文章的时候,你唯一的选择是存储或以某种方式缓存图像。

例如,你可以将图像存储在数据库中。 Instagram的平台策略需要删除的图像时,你的应用程序不再需要他们。

另外,如果您使用CDN可以通过图像代理服务于这些图像,然后设置在CDN长的到期日期。这样,你是不是存储在图像数据库中,但用户仍然可以看到他们的网址签名过期后。


-7
投票

只是按CTRL + S保存的页面,你就会有文件夹中的照片,你将它保存

© www.soinside.com 2019 - 2024. All rights reserved.