it-swarm.com.de

Instagram / Feed API-Medien-URL zeigt "URL-Signatur abgelaufen"

Ich verwende die Instagram-Feed-API, um meine Instagram-Posts auf meiner Website anzuzeigen. Bei einigen Video-URLs wird jedoch "RL-Signatur abgelaufen" angezeigt.

Irgendeine Lösung für mich?

22
Arun Singh

Instagram hat ihren Medien-URLs URL-Signaturen hinzugefügt.

Mit diesem regulären Ausdruck können Sie die URL-Signatur leicht entfernen: "vp. * /. {32} /. {8} /"

Zum Beispiel in PHP:

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

Andererseits halte ich das Entfernen der URL-Signatur nicht für die beste Lösung (ist nur eine schnelle Lösung). Das Gute ist, die Instagram-API erneut aufzurufen, um die neue URL zu erhalten.


UPDATE

Es scheint, dass Instagram derzeit die URL-Signatur überprüft und den Fehler 403 "Zugriff verweigert" zurückgibt, wenn die Signatur nicht vorhanden ist. Daher besteht die einzige Lösung darin, die Instagram-API erneut aufzurufen, um die neue Medien-URL abzurufen.

PDATE April 2018

Instagram hat seinen Endpunkt "api.instagram.com/v1/media/" geschlossen, daher ist es derzeit nicht möglich, die URLs der Beiträge zu aktualisieren.

Eine mögliche Lösung besteht darin, die Medien herunterzuladen und auf Ihren eigenen Servern zu speichern (ich empfehle diese Lösung nicht, da sie gegen die Bestimmungen der Instagram-API verstößt, tun Sie dies also auf eigenes Risiko).

Eine andere Lösung besteht darin, den ursprünglichen Endpunkt aufzurufen, auf dem Sie die Medien erneut gefunden haben (derzeit ist es jedoch schwierig, die Anrufe mit dem neuen API-Ratenlimit zu verwalten).

Außerdem findest du auf github einige nicht offizielle Instagram-APIs, die dir helfen könnten.

18
Jordi

Sie können die Medien-URL mit einigen zusätzlichen Parametern als Lösung verwenden, um das gewünschte Bild zu erhalten, anstatt den direkten Bildlink zu verwenden.

Beispielsweise

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

Beachten Sie das Addon /media /? Size = m

Buchstaben können t, m oder l für unterschiedliche Bildgrößen sein

Dies sollte das gewünschte Bild zurückgeben

Referenz: https://www.instagram.com/developer/embedding/

12

Zum Zeitpunkt des Schreibens besteht Ihre einzige Alternative darin, die Bilder irgendwie zu speichern oder zwischenzuspeichern.

Beispielsweise könnten Sie die Bilder in Ihrer Datenbank speichern. Gemäß den Richtlinien der Instagram-Plattform müssen Sie die Bilder löschen, wenn Ihre Anwendung sie nicht mehr benötigt.

Wenn Sie einen CDN verwenden, können Sie diese Images alternativ über einen Image-Proxy bereitstellen und dann lange Ablaufdaten für den CDN festlegen. Auf diese Weise speichern Sie die Bilder nicht in einer Datenbank, aber Ihre Benutzer können sie weiterhin sehen, nachdem die URL-Signatur abgelaufen ist.

4
Pirkka Esko