2016-07-14 15 views
2

Wir verwendet, um den Benutzer instagram zu erhalten Feeds die folgenden API:Instagram-Feeds nicht zur Verfügung: eine alternative Notwendigkeit, die Instragram Benutzer öffentlichen Inhalt zu erhalten

$query = array(
      'client_id' => INSTAGRAM_CLIENT_ID, 
      'q' => 'ladygaga' 
     ); 

     $url = "https://api.instagram.com/v1/users/search?".http_build_query($query); 

     $user_data = getcurldata($url); 
. 

$main_user_id = $user_data['data'][0]['id']; 

        $content_query = array(
         'client_id' => INSTAGRAM_CLIENT_ID 
        ); 

        $url_for_content = "https://api.instagram.com/v1/users/$main_user_id/media/recent?".http_build_query($content_query); 

        $insta_data = getcurldata($url_for_content); 

Jetzt sind wir nicht die Benutzer-Feed von API bekommen. Instagram hat seine API-Einstellung basierend auf APP geändert. Sie haben die Benutzerauthentifizierung gestartet, bevor der Feed für den Benutzer bereitgestellt wird. Sie sagen auch, dass nur 10 Benutzer zu einer bestimmten APP im Sandbox-Modus hinzugefügt werden können und eine APP kann nur Feed von diesen 10 Benutzern und maximal 20 Post von ihnen erhalten.

Aber wir wollen Feed von mehreren Benutzern (Künstler auf der ganzen Welt): zB: ladygaga, akon, etc. Um ihre Daten zu bekommen, können wir sie nicht auf unserer APP authentifizieren. Auch nur 10 Benutzerauthentifizierung wird nicht helfen, da wir etwa 5k-10k Artist Feeds benötigen.

Gibt es eine Alternative, von wo wir diese Feeds bekommen können? Irgendeine Hilfe?

Antwort

0

Sie können Instagram-Frontend-Daten scraphen. Grundsätzlich gibt es ein Benutzer JSON Beschickung bei

'https://www.instagram.com/' . $username . '/?__a=1' 

und Medienzufuhr bei

'https://www.instagram.com/' . $username . '/media/' 

die mit GET-Parameter ausgelagert werden kann max_id, offset_id und count.

Aber sei gewarnt, dass dieses Frontend-Scraping gegen Instagram-Richtlinien verstößt und bei zu hartem Zugriff von Instagram blockiert werden kann.

Es gibt eine Knotenbibliothek instagram-screen-scrape, die dies tut, können Sie die Quelle für Hinweise anzeigen.

+2

Dies auch eine gute Chance zu brechen zufällig hat, wie Instagram, dass die URL jederzeit aktualisieren können. Ihre App wird gut funktionieren. Deines wird nicht. Scrapping 5-10k wie OP beabsichtigt, wird wahrscheinlich auch seinen Server blockiert. – ceejayoz

+0

Dies ist eine gute Info, wusste nicht, max_id war möglich, danke! – krisrak

0
  1. Wie es jetzt aussieht, müssen Sie ein Zugriffs-Token verwenden. Nur eine Client-ID reicht nicht mehr aus, um auf Daten von der API zuzugreifen.
  2. Im Sandbox-Modus können Sie nicht auf Daten von einem Benutzer zugreifen, abgesehen von den zehn Benutzern, die Sie in die Sandbox einladen. Wenn Sie auf mehr als die Sandbox-Benutzer zugreifen möchten, müssen Sie submit your site zu "Go Live". Dies erfordert eine strenge Überprüfung Ihrer Website durch Instagram.

Aber wir wollen Zufuhr von mehreren Benutzern (Künstler auf der ganzen Welt): zB: ladygaga, Akon, usw.

Aufgrund der neuen API-Regeln, werden Sie nicht in der Lage sein, um dies zu tun, es sei denn du lädst Ladygaga, akon usw. in deine Sandbox ein. Ich habe etwas Ähnliches gemacht, wo ich meine Followerliste sehen wollte. Ich habe immer wieder leere JSON-Objekte bekommen, wo data: [] keine Eingabe hatte. Ich musste ein falsches Konto erstellen und meinem echten Konto folgen. Nachdem ich dies getan hatte, führte das Anfordern meiner Follower-Liste dazu, dass ich EINEN Benutzer, den falschen Benutzer, den ich gemacht und zu meiner Sandbox eingeladen hatte, erhielt.

IMO Instagram hat seine API vollständig generft und es für alle bis auf produktionsreife Dienste unzugänglich gemacht. Die Handhabung der Paginierung ist jetzt besonders schwierig, da Sie nicht in der Lage sein werden, dagegen zu testen, da der Sandbox-Modus Ihrer Follower-Liste oder Medien, die Sie gleichzeitig anfordern können, ein Limit hinzufügt.

Ich bin sicher, Instagram hat gültige Gründe für diese jüngste Änderung, aber ich bin nicht glücklich.