Я использую API ленты Instagram, чтобы показывать свои публикации в Instagram на своем веб-сайте. Но URL-адрес некоторых видео показывает «Срок действия подписи URL-адреса истек».
Любое решение для меня?
Я использую API ленты Instagram, чтобы показывать свои публикации в Instagram на своем веб-сайте. Но URL-адрес некоторых видео показывает «Срок действия подписи URL-адреса истек».
Любое решение для меня?
Вы можете использовать URL-адрес мультимедиа с некоторыми дополнительными параметрами в качестве решения для получения желаемого изображения вместо использования прямой ссылки на изображение.
Например
https://www.instagram.com/p/Bo7OXJ3hYM8/media/?size=m
Обратите внимание на дополнение /media/?size=m.
Буквы могут быть t, m или l для изображений разного размера.
Это должно вернуть вам желаемое изображение
Ссылка: https://www.instagram.com/developer/embedding/
Instagram добавил URL-подписи к своим URL-адресам мультимедиа.
Вы можете легко удалить подпись URL, используя это регулярное выражение: "vp.*/.{32}/.{8}/"
Например, в PHP:
preg_replace('/vp.*\/.{32}\/.{8}\//', '', $mediaUrl)
С другой стороны, я не думаю, что удаление подписи URL — лучшее решение (это просто быстрое решение). Хороший способ — снова вызвать API Instagram, чтобы получить новый URL-адрес.
ОБНОВЛЕНИЕ
Похоже, что Instagram в настоящее время проверяет подпись URL-адреса и возвращает ошибку 403 «Отказано в доступе», если подпись отсутствует, поэтому теперь единственным решением является повторный вызов API Instagram, чтобы получить новый URL-адрес мультимедиа. забастовка>
ОБНОВЛЕНИЕ, апрель 2018 г.
Instagram закрыл свою конечную точку «api.instagram.com/v1/media/», поэтому в настоящее время невозможно обновить URL-адреса сообщений.
Возможным решением является загрузка мультимедиа и хранение их на ваших собственных серверах (я не рекомендую это решение, поскольку оно нарушает условия API Instagram, поэтому делайте это на свой страх и риск).
Другим решением является повторный вызов исходной конечной точки, где вы нашли медиафайлы (но в настоящее время трудно управлять вызовами с новым ограничением скорости API).
Также вы можете найти некоторые неофициальные API Instagram на github, которые могут вам помочь.
На момент написания вашей единственной альтернативой было каким-то образом сохранять или кэшировать изображения.
Например, вы можете хранить изображения в своей базе данных. Политика платформы Instagram требует, чтобы вы удаляли изображения, когда они больше не нужны вашему приложению.
В качестве альтернативы, если вы используете CDN, вы можете передавать эти изображения через прокси-сервер изображений, а затем устанавливать длительные даты истечения срока действия в CDN. Таким образом, вы не сохраняете изображения в базе данных, но ваши пользователи все еще могут видеть их после истечения срока действия подписи URL.