Code 401: Unauthorized
Cuando decidimos armar TuShop.cl, un producto para tiendas de Instagram, el paso obvio era integrarnos con esta plataforma.
Nuestras tiendas hacen todo por este canal, igual que sus clientes. Nos gustaba mucho la idea de que en vez de que se enviara el típico mail fome para agradecerle a los clientes por su compra, se mande un mensaje más personalizado por direct.
Bad news
Empezamos la búsqueda y después de 15 minutos cachamos al tiro porqué no existía algo así: Instagram no tiene API 🤦♂️.
Nos bajó un bichito/espíritu hacker de buscar una forma de resolver el problema igual. ¡Cómo no se va a poder 🤔!
Andrés, el b̶o̶t̶ computín del equipo, se puso a investigar…
Hacker Man
Dando vueltas por internet, pillamos una comunidad en Telegram de personas de todo el mundo (en su mayoría rusos) que arman herramientas “no oficiales ” para uso personal en Instagram.
Había de todo en el grupo. Desde personas que estaban metidos por curiosidad a devs que se armaban aplicaciones simples para saber cuando alguien los dejaba de seguir.
Nos sorprendió la disposición que había de colaborar entre los miembros del grupo. Como no existe una API pública con documentación clara de cómo hacer las cosas, lo único que queda es armar ese conocimiento en conjunto.
Andrés incluso habló con un ruso por varias horas que nos ayudó a resolver un problema que nos tenía locos para conectar la cuenta de Instagram.
No lo hagas en casa
Pero entonces, ¿cómo funciona?
Cuando decimos que aplicamos ingeniería reversa suena mucho más interesante y glamoroso de lo que en verdad es.
La idea es entrar a la aplicación de Instagram desde tu celular y llevar registro de todos los requests que se envían hacia el servidor para intentar replicarlos después desde otra aplicación propia.
Puedes hacer la prueba descargándote una versión parcheada de Instagram y Burp Suite. Ésta última sirve para interceptar y llevar registros de todos los request que hace tu teléfono desde cualquier aplicación 🤯.
Con Burpe instalado ya puedes entrar a Instagram y empezar a revisar todos los requests, headers y parámetros que se envían cuando abres el perfil de alguien o envías un mensaje por la aplicación.
Trabajar con la “API privada” de Instagram es bien limitado: Puedes hacer lo mismo que haces desde tu celular cuando te conectas a través de la aplicación oficial. Esto implica que sigues teniendo que respetar los términos y condiciones que tiene la plataforma.
Cada cierto tiempo se mete un iluso al grupo de Telegram pensando que está en una película y hace una solicitud del tipo:
Bingo
Como no existe documentación (obvio), es mucha prueba y error. Es un trabajo que toma harto tiempo sobre todo porque los errores que llegan no tienen una descripción clara.
A veces todo se veía bien y funcionando hasta que de repente Instagram decidía mandarnos el número de seguidores como un float en vez de int.
Después de unas semanas interceptando paquetes y de varias pruebas y error, logramos enviar el primer mensaje 100% automático por nuestra cuenta de Instagram:
Fue muy entretenido ver el resultado. Se lo pasamos a nuestros primeros usuarios (mis primas) y les encantó.
Así fue como algo que partió como un experimento entretenido se convirtió en TuShop.cl: Un carrito de compras para tiendas de Instagram que envía mensajes 100% automáticos y personalizados por direct 🤯.
¿Te gustó? Seguimos buscando más hackers para que se unan al equipo, escríbenos!