Instagram / API feed media URL affiche 'URL signature expirée'

J'utilise Instagram feed API pour afficher mes messages Instagram sur mon site web. Mais certaines URLs de la vidéo montrent' signature URL expirée'.

Aucune solution pour moi ?

16
demandé sur Gal Margalit 2017-12-06 09:21:09

2 réponses

Instagram a ajouté des signatures D'URL à leurs URLs média.

vous pouvez facilement supprimer la signature URL en utilisant cette expression régulière: "vp.* / .{32}/.{8}/"

par exemple en PHP:

preg_replace('/vp.*\/.{32}\/.{8}\//', '', $mediaUrl)

d'un autre côté, Je ne pense pas que la suppression de la signature de L'URL soit la meilleure solution (est juste une solution rapide). Le bon est d'appeler à nouveau L'api Instagram afin d'obtenir le nouveau URL.


UPDATE

il semble Qu'Instagram vérifie actuellement la signature de L'URL et renvoie une erreur 403 "Access denied" si la signature n'est pas présente, donc maintenant la seule solution est d'appeler à nouveau L'API Instagram afin d'obtenir l'URL du nouveau média.

mise à jour avril 2018

Instagram a fermé son "api.instagram.com/v1/media/" endpoint alors maintenant, il n'est actuellement pas possible de mettre à jour les postes de l'url.

une solution possible est de télécharger les médias et de les stocker sur vos propres serveurs (Je ne recommande pas cette solution car elle viole les termes de L'API Instagram alors faites-le à vos risques et périls).

une autre solution est d'appeler l'endpoint d'origine où vous avez retrouvé les medias (mais actuellement il est difficile de bloquer les appels avec la nouvelle limite de débit de L'API).

Vous pouvez aussi trouver des APIs Instagram non-officiels sur github qui pourrait vous aider.

18
répondu Jordi 2018-05-07 13:56:45

au moment de l'écriture, votre seule alternative est de stocker ou de mettre en cache les images d'une façon ou d'une autre.

Par exemple, vous pouvez stocker les images dans votre base de données. La Politique de la plate-forme Instagram exige que vous supprimiez les images lorsque votre application n'en a plus besoin.

alternativement, si vous utilisez un CDN, vous pouvez servir ces images via un proxy d'image et ensuite définir de longues dates d'expiration sur le CDN. De cette façon, vous ne stockez pas les images dans une base de données, mais vos utilisateurs peuvent les voir toujours après la date d'expiration de la signature URL.

4
répondu Pirkka Esko 2018-04-23 08:16:03