2017-09-04 2 views
0

J'ai récemment construit un plugin pour wordpress qui utilise essentiellement l'API instagram pour obtenir une URL d'image, puis placez-le dans un code court.Façon correcte de parcourir Instagram API résultat tableau d'images avec foreach

Et j'ai rencontré un problème.

-je obtenir cette erreur:

E_WARNING : type 2 -- Invalid argument supplied for foreach() -- at line 22

et je ne sais pas ce que je fais mal.

Mon code pour le foreach:

//define Access token 
$accesst= "ACCESS_TOKEN_GOES_HERE"; 
//userid 
$userid=USERID_GOES_HERE; 
//image count to get 
$count=20; 
//get api contents 
$content = file_get_contents('https://api.instagram.com/v1/users/self/media/recent/?access_token='.$accesst.'&count='.$count); 
//converting JSON to object 
$standardres = json_decode($content, true); 
//array method 
foreach($standardres['data'][0]['images']['standard_resolution']['url'] as $photo) 
{ 
    print $photo['url'][0]; 
    echo "<br>"; 
} 

Mon JSON var_dump m'a ceci:

https://pastebin.com/3RaL6EUA

Les codes d'accès étaient bien sûr supprimé avant de poster ce sujet.

Est-ce que quelqu'un a une idée de ce que je fais mal?

EDIT: Merci, tout le monde, je l'ai compris dans les commentaires.

+0

Essayé avec '$ photo [0]' au lieu de '$ photo [ 'url'] [0]'? –

+0

pouvez-vous essayer cela? Foreach ($ standardres ['data'] ['images'] as $ image) { imprimer $ image ['resolution_normale'] ['url']; echo "
"; } –

+0

bub, oui, même résultat. Omis Brown, donne à "E_NOTICE: Type 8 - index défini: - les images à la ligne 13 E_WARNING: Type 2 - Invalid argument fourni pour foreach() - à la ligne 13" ajoutant [0] dans foreach supprime l'erreur d'index non définie –

Répondre

0

Votre $standardres['data'] avoir des éléments qui ont des images, vous devez donc utiliser $standardres['data'] dans la boucle foreach puis analyser l'URL de l'image à partir des données de l'article.

foreach($standardres['data'] as $item) { 
    print $item['images']['standard_resolution']['url']; 
    echo "<br>"; 
} 
+0

Merci beaucoup! Cela a aidé! –

+0

@JacobStank vous êtes les bienvenus. N'oubliez pas de marquer la bonne réponse ou d'ajouter la vôtre (si personne ne vous a fourni la bonne réponse). – Neodan

0

Je ne sais pas exactement la hiérarchie de l'API instagram, mais je vous suggère d'essayer:

foreach($standardres['data']['images'] as $photo) { 
    print_r($photo); // to see what the array contains! 
    echo $photo['standard_resolution']['url']; 
    echo "<br>"; 
} 
+0

Merci beaucoup! m'a aidé, cela fonctionne –