to top

Publicar en Instagram desde PHP

Esta semana acabamos con la aventura de publicar en redes sociales desde PHP. Esta vez nos metemos a publicar una foto en Instagram por programación.

Paso 1: Crea un perfil de Instagram de pruebas

Antes de nada crearemos una cuenta de Instagram para hacer pruebas. Si hacemos cosas mal podemos anular la cuenta que estemos usando. Mejor probar con una cuenta que no nos importe perder.

Esta vez no tenemos que crear aplicaciones, los datos que tenemos que usar son nuestro usuario/pass de la cuenta de Instagram en la que queremos publicar.

Paso 2: Descarga de librería Instagram

Gracias a php8legs tenemos una clase para publicar de forma fácil en instagram. Se puede descargar desde AQUI. Es necesario registrarse, pero solo es para la descarga, después no molestan con emails. La url directa de descarga (una vez registrado) es: http://php8legs.com/en/component/phocadownload/category/1-web-scraper?download=11:instagram-auto-post

Como hemos hecho en otras ocasiones, los archivos los copio a la carpeta “sdk/instagram”.

En este ejemplo usaremos la clase instagram.class.php junto a la libreria de procesamiento de imágenes: SimpleImage

Así escalaremos la imagen, la recortamos a 800×800 y la subimos.

Paso 3: Al lio

Cargamos la libreria instagram.class.php, creamos el objeto, nos autenticamos ….

require_once '../../claviska/SimpleImage.php';
require_once '../../sdk/Instagram/instagram.class.php';
       
 
        $caption = "Título de la publicacion inluyendo los #tags que quieras";
        $imagen_original= "../imagen.jpg"; // ruta de la imagen
        $path_parts = pathinfo($imagen_original);
        $pathbase = $path_parts['dirname'];
        
        $imagen_800x800 = $pathbase.'/instagram-temp.jpg';
             
        $image = new \claviska\SimpleImage();
        $image->fromFile($imagen_original);

        $image->thumbnail(800,800); //escalo y recorto a 800 x 800
        $image->toFile($imagen_800x800,'image/jpeg',80); //guardo a jpg con calidad de 80%
        
        unset($image); // elimino el objeto SimpleImage


        $insta = new instagram();
        $response = $insta->Login($username, $password); // USUARIO Y PASS DE NUESTRA CUENTA DE INSTAGRAM
      
        
        if(strpos($response[1], "Sorry")) {
            echo "Request failed, there's a chance that this proxy/ip is blocked";
            print_r($response);
            exit();
        }
        if(empty($response[1])) {
            echo "Empty response received from the server while trying to login";
            print_r($response);
            exit();
        }
        $insta->Post($imagen_800x800, $caption); //Envío

 

Ejecutar…. y no funciona. Sigue adelante

Paso 4: Entrar en el perfil de Instagram

La primera vez que ejecutamos este script seguramente no se publique nada. Instagram bloquea las publicaciones desde nuevas ips, por lo que hay que entrar en instagram.com y autenticarse. En ese momento Instagram te preguntará que ha habido un intento de publicación desde X y si permites que se publique desde alli. Aceptar y el script funcionará perfectamente.

Una vez esté funcionando, cambia el usuario/pass a los reales y vuelve a revisar el Paso 4.

Y listo, fin a esta serie de artículos para publicar en redes sociales desde PHP!!

Prime Monkey

  • hernan

    Hola mono, es posible probar esto desde localhost?

    29 marzo, 2019 a 9:46 am Responder
  • guillermo

    hola no soy programador ..cual es la variable $product_image en el codigo?? desde ya gracias

    24 mayo, 2019 a 8:06 am Responder
  • Luis

    Como pongo un salto de linea en al titulo?

    Ejemplo probe así:

    Maradona visitó \n\r Dubai
    Maradona visitó Dubai

    ¿?

    Gracias

    1 junio, 2019 a 3:46 pm Responder

Deja un comentario