2016-11-17 1 views
0

abrufen Ich versuche, die Instagram PHP-API, um Freunde Fotos zu bekommen. Ich habe mich sowohl als Sandbox-Benutzer als auch als Dummy-Benutzer mit wenigen zufällig hochgeladenen Bildern registriert. Dann habe ich den Dummy-Benutzer eingeladen, die App in der Sandbox zuzulassen, um sein Konto zu verbinden.Ich kann keine Bilder von Instagram mit Hilfe der bereitgestellten PHP-API

Um Zugriffstoken erhalte ich eine Anfrage senden Code zu bekommen und dann Zugriffstoken mit Umfang erhalten:

https://api.instagram.com/oauth/access_token?client_id=CLIENT_ID&client_secret=SECRET_STRING&grant_type=authorization_code&redirect_uri=http://localhost/&code=CODE&scope=basic+public_content+comments+likes` 

PHP-Code:

$url = 'https://api.instagram.com/oauth/access_token'; 
    $payload = [ 
      $GLOBALS['KEY_CID'] => $GLOBALS['VAL_CID'], 
      $GLOBALS['KEY_CECRET'] => $GLOBALS['VAL_CECRET'], 
      'grant_type' => 'authorization_code', 
      'redirect_uri' => 'http://localhost/', 
      'code' => $param_code, 
      'scope' => 'basic+public_content+comments+likes']; 

$ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); // url 
     curl_setopt($ch, CURLOPT_POST, true); // POST 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); // POST DATA 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // RETURN RESULT true 
     curl_setopt($ch, CURLOPT_HEADER, 0); // RETURN HEADER false 
     curl_setopt($ch, CURLOPT_NOBODY, 0); // NO RETURN BODY false/we need the body to return 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // VERIFY SSL HOST false 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // VERIFY SSL PEER false 
$response = json_decode(curl_exec($ch), true); 
curl_close($ch); 

Nachdem ich Zugriffstoken erfolgreich bekam.

Ich versuche, Bilder aus einem Sandbox Benutzer zu erhalten, die ein Dummy-Konto, das ich für den Test erstellt:

https://api.instagram.com/v1/users/fane.leee/media/recent?access_token=ACCESS_TOKEN 

PHP-Code für das Abrufen Bild:

$url = 'https://api.instagram.com/v1/users/fane.leee/media/recent?access_token='.$ACCESS_TOKEN; 
    $ch = curl_init(); // initializing 
    curl_setopt($ch, CURLOPT_URL, $url); // API URL to connect 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return the result, do not print 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
    $response = json_decode(curl_exec($ch), true); // connect and get json data 
    curl_close($ch); 

Das Problem
Der $ response der get image Anfrage ist NULL ohne Fehlermeldung. Hat jemand irgendwelche Ideen zu dem Problem?

Danke.


Referenz

  1. Instagram Entwicklung doc authentication und authorization.

  2. Instagram Entwicklung doc über user endpoints

  3. Another StackOverflow post über Instagram Web-API


Umgebung Entwicklung: 16.04 Ubuntu
Apache2
PHP 7.0.8
MySQL 14.14


Edit 1: Fügen Sie den PHP-Code cUrl Funktionen aufrufen.
Edit 2: Wenn ich die Benutzer-ID 'fane.leeee' durch 'self' ersetze, kann ich die von mir geposteten Bilder abrufen. Ich folgte auch dem Benutzer 'fane.leeee'. Was sonst sollte ich tun, um die Medien der Freunde zu finden?

+0

Beitrag einige Code bitte. –

+0

Danke für Ihre Kommentare, Code hinzugefügt :) – r0ng

+1

Haben Sie irgendwelche Sandbox-Benutzer hinzugefügt? – Viney

Antwort

0

Die fane.leee ist ein Benutzername. Instagram erfordert eine Benutzer-ID im API-Aufrufer.

Um einen Benutzer-ID zu erhalten, indem eine instagram API-Funktion aufrufen, wir
https://www.instagram.com/{username}/?__a=1

Eine andere Möglichkeit, die Benutzer-ID zu erhalten, ist ein 3rd-Party-Website nutzen nutzen könnten. Es ist in der Lage, eine Instagram-Benutzer-ID von einem Benutzernamen abzurufen.Es ist here


Referenz:
Eine Antwort von Thinh Vu in this thread - Not the accepted answer, but the answer underneath. P.S the accepted answer is not working anymore.

Verwandte Themen