Como usar API do Imgur em PHP

  • Autor Autor MatiasVM
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
M

MatiasVM

Gamma
Programador
Verificación en dos pasos activada
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Como usar API do Imgur em PHP


Imgur proporciona a los desarrolladores una API para cargar imágenes utilizando su aplicación. Para ello sólo deben registrarse en Imgur y obtener una ID de cliente. En este post van a ver el proceso paso a paso para cargar imágenes usando Imgur API en PHP. Esto es bastante fácil.


1. Registrarse

Deben tener una cuenta en Imgur, si no la tienen pueden registrarse en este link:
Inserir CODE, HTML ou PHP:
https://imgur.com/register


2. Obtener un ID de cliente

Es necesario crear una aplicación para obtener el ID de cliente. Para crear una aplicación vaya a esta página:
Inserir CODE, HTML ou PHP:
https://api.imgur.com/oauth2/addclient

Seleccione Anonymous usage without user authorization en la opción de Authorization Type

b4bcddf28cf249198baaaabb3c6b5879.webp

Llene todos los otros campos, incluyendo el de CAPTCHA. Luego, haga clic en el botón submit y recibirá un ID de cliente y un Client secret.

31b813e5d8884a4296966f7dcf4f675b.webp

Ahora solo deben crear un formulario, este es igual que cualquier otro formulario de carga de archivos.


HTML

HTML:
<form action="" enctype="multipart/form-data" method="POST">
 Seleccionar imagen: <input name="img" size="35" type="file"/><br/>
 <input type="submit" name="submit" value="Subir"/>
</form>

PHP:
<?php
if(isset($_POST['submit'])){ 
  $filename= $_FILES['img']['tmp_name'];
  $client_id = "83ea198839a61ed"; // AQUI SU CLIENT ID
  $handle = fopen($filename, "r");
  $data = fread($handle, filesize($filename));
  $pvars   = array('image' => base64_encode($data));
  $timeout = 30;
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
  curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
  curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
  curl_setopt($curl, CURLOPT_POST, 1);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
  $out = curl_exec($curl);
  curl_close ($curl);
  $pms = json_decode($out,true);
  $url=$pms['data']['link'];
  if($url!=""){
   echo "<h2>Imagen subida!</h2>";
   echo "<img src='$url'/>";
  }else{
   echo "<h2>Ocurrió un problema :(</h2>";
   echo $pms['data']['error'];  
  } 
 }
}
?>

Aqui pueden encontrar toda la documentacion de la API Imgur:
Inserir CODE, HTML ou PHP:
https://apidocs.imgur.com/

Y eso es todo, cualquier duda en los comentarios.
 
Última edição:
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
que buen tutorial y sencillo, gracias parcero :estrellas:
 
Muy interesante. Seria como un complemento para la libreria GD nativa de PHP?
 
Buen tutorial, fácil de entender y útil 😉

- - - Actualizado - - -

Muy interesante. Seria como un complemento para la libreria GD nativa de PHP?

No por ejemplo lo podrías usar en localhost para subir imágenes rápidamente sin tener que entrar al sitio imgur, lo que hace el script php es enviar la imagen en formato base64_encode y el servidor de imgur le hace base64_decode y un file_put_contents a alguna carpeta especifica, luego devuelve como respuesta el enlace directo de la imagen (en formato json json decode) para ser insertada por ejemplo en un foro, sitio web, etc.
 
Última edição:
Interesante, gracias por compartirlo.
 
Voltar
Topo