pueden - Obtén todas las fotos de Instagram que tienen un hashtag específico con PHP
hashtag populares instagram 2018 (6)
Aquí hay otro ejemplo que escribí hace un tiempo:
<?php
// Get class for Instagram
// More examples here: https://github.com/cosenary/Instagram-PHP-API
require_once ''instagram.class.php'';
// Initialize class with client_id
// Register at http://instagram.com/developer/ and replace client_id with your own
$instagram = new Instagram(''CLIENT_ID_HERE'');
// Set keyword for #hashtag
$tag = ''KEYWORD HERE'';
// Get latest photos according to #hashtag keyword
$media = $instagram->getTagMedia($tag);
// Set number of photos to show
$limit = 5;
// Set height and width for photos
$size = ''100'';
// Show results
// Using for loop will cause error if there are less photos than the limit
foreach(array_slice($media->data, 0, $limit) as $data)
{
// Show photo
echo ''<p><img src="''.$data->images->thumbnail->url.''" height="''.$size.''" width="''.$size.''" alt="SOME TEXT HERE"></p>'';
}
?>
¿Necesito obtener algunas imágenes que tengan un hashtag específico usando PHP? ¿Alguna ayuda será increíble, o pista?
Desde el 17 de noviembre de 2015, debe autenticar a los usuarios para realizar cualquier solicitud (incluso como "obtener algunas imágenes que tienen un hashtag específico"). Ver la Plataforma de Instagram Changelog :
Aplicaciones creadas a partir del 17 de noviembre de 2015: Todos los puntos finales API requieren un access_token válido. Aplicaciones creadas antes del 17 de noviembre de 2015: no afectadas por el nuevo comportamiento de la API hasta el 1 de junio de 2016.
esto hace que todas las respuestas dadas aquí antes del 1 de junio de 2016 ya no sean útiles
Existe la sección de etiquetas de la API pública de Instagram que puede ayudarte a hacer esto. http://instagram.com/developer/endpoints/tags/
He configurado un código php que puede ayudar en caso de que quiera acceder a imágenes de Instagram sin una API basada en el hashtag
Para obtener más de 20, puede usar un botón de cargar más.
index.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Instagram more button example</title>
<!--
Instagram PHP API class @ Github
https://github.com/cosenary/Instagram-PHP-API
-->
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
ul {
width: 950px;
}
ul > li {
float: left;
list-style: none;
padding: 4px;
}
#more {
bottom: 8px;
margin-left: 80px;
position: fixed;
font-size: 13px;
font-weight: 700;
line-height: 20px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
$(''#more'').click(function() {
var tag = $(this).data(''tag''),
maxid = $(this).data(''maxid'');
$.ajax({
type: ''GET'',
url: ''ajax.php'',
data: {
tag: tag,
max_id: maxid
},
dataType: ''json'',
cache: false,
success: function(data) {
// Output data
$.each(data.images, function(i, src) {
$(''ul#photos'').append(''<li><img src="'' + src + ''"></li>'');
});
// Store new maxid
$(''#more'').data(''maxid'', data.next_id);
}
});
});
});
</script>
</head>
<body>
<?php
/**
* Instagram PHP API
*/
require_once ''instagram.class.php'';
// Initialize class with client_id
// Register at http://instagram.com/developer/ and replace client_id with your own
$instagram = new Instagram(''ENTER CLIENT ID HERE'');
// Get latest photos according to geolocation for Växjö
// $geo = $instagram->searchMedia(56.8770413, 14.8092744);
$tag = ''sweden'';
// Get recently tagged media
$media = $instagram->getTagMedia($tag);
// Display first results in a <ul>
echo ''<ul id="photos">'';
foreach ($media->data as $data)
{
echo ''<li><img src="''.$data->images->thumbnail->url.''"></li>'';
}
echo ''</ul>'';
// Show ''load more'' button
echo ''<br><button id="more" data-maxid="''.$media->pagination->next_max_id.''" data-tag="''.$tag.''">Load more ...</button>'';
?>
</body>
</html>
ajax.php
<?php
/**
* Instagram PHP API
*/
require_once ''instagram.class.php'';
// Initialize class for public requests
$instagram = new Instagram(''ENTER CLIENT ID HERE'');
// Receive AJAX request and create call object
$tag = $_GET[''tag''];
$maxID = $_GET[''max_id''];
$clientID = $instagram->getApiKey();
$call = new stdClass;
$call->pagination->next_max_id = $maxID;
$call->pagination->next_url = "https://api.instagram.com/v1/tags/{$tag}/media/recent?client_id={$clientID}&max_tag_id={$maxID}";
// Receive new data
$media = $instagram->getTagMedia($tag,$auth=false,array(''max_tag_id''=>$maxID));
// Collect everything for json output
$images = array();
foreach ($media->data as $data) {
$images[] = $data->images->thumbnail->url;
}
echo json_encode(array(
''next_id'' => $media->pagination->next_max_id,
''images'' => $images
));
?>
instagram.class.php
Busque la función getTagMedia () y reemplácela por:
public function getTagMedia($name, $auth=false, $params=null) {
return $this->_makeCall(''tags/'' . $name . ''/media/recent'', $auth, $params);
}
Si solo necesita mostrar las imágenes base en una etiqueta, entonces no debe incluir la clase contenedora "instagram.class.php". Como los puntos finales de medios y etiquetas en la API de Instagram no requieren autenticación. Puede utilizar la siguiente función basada en rizos para recuperar resultados en función de su etiqueta.
function callInstagram($url)
{
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => 2
));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$tag = ''YOUR_TAG_HERE'';
$client_id = "YOUR_CLIENT_ID";
$url = ''https://api.instagram.com/v1/tags/''.$tag.''/media/recent?client_id=''.$client_id;
$inst_stream = callInstagram($url);
$results = json_decode($inst_stream, true);
//Now parse through the $results array to display your results...
foreach($results[''data''] as $item){
$image_link = $item[''images''][''low_resolution''][''url''];
echo ''<img src="''.$image_link.''" />'';
}