Bien que je ne sois pas un gros utilisateur d’Instagram, ma petite amie l’est. Elle aime la photographie et utilise Instagram pour publier ses photos. Un jour, elle a lu un article moyen de Tim Grossmann où il explique comment il a créé un bot pour automatiser les parties ennuyeuses d’Instagram: aimer et suivre les gens qui sont liés à ce que vous faites. Si vous ne l’avez pas lu, allez-y, c’est très bien documenté.
Elle m’a demandé si je pouvais écrire quelque chose de similaire, quelque chose qu’elle pourrait utiliser sans même savoir comment écrire du code, et j’ai trouvé go-instabot!

Exigences
Les exigences étaient à l’époque assez simples:

  • le bot doit pouvoir aimer et suivre les images en utilisant la fonction «explorer par tag»;
  • il ne le fera que si l’utilisateur n’est «pas trop grand, mais assez grand» (doit avoir un certain nombre d’adeptes entre deux valeurs définies).

Et c’est tout! Ce faisant, si nous croyons à l’expérience de Tim Grossmann, les gens viennent sur votre profil et «aiment revenir» ou «suivre»!

Trouvez un moyen de demander l’API d’Instagram

Pour pouvoir automatiser tout cela, je devais trouver un moyen d’accéder à l’API d’Instagram. La première option, et celle choisie par Tim Grossmann, est de tout faire avec le sélénium. Bien que ce soit bien, je n’ai pas vraiment aimé l’idée car je voulais apprendre le Go à l’époque.

J’ai choisi d’aller dans l’autre sens: trouver une API publique. Depuis que j’écrivais le bot dans Go, j’étais heureux de trouver l’excellent GoInsta, qui semblait résoudre tous les problèmes que je pouvais rencontrer.

Rendons ça plus intéressant
J’ai décidé d’affiner un peu les exigences et de m’amuser avec Go. Voici ce que j’ai choisi d’ajouter:

  • non seulement vous pouvez aimer et suivre des photos, mais vous pouvez également commenter une photo, à partir d’une liste de commentaires pré-écrits;
  • le bot enverra un e-mail avec un récapitulatif une fois terminé;
  • il y a des limites différentes pour chaque action. Par exemple, vous pouvez décider d’aimer une image uniquement si l’utilisateur compte entre 10 et 1 000 abonnés, mais de ne suivre que si ce nombre est compris entre 500 et 1 000;
  • vous pouvez mettre autant de balises que vous le souhaitez, et pour chaque balise, vous pouvez définir un certain nombre de likes, de suivis et de commentaires;
  • option bonus: que diriez-vous de nettoyer votre compte de temps en temps? Vous pouvez synchroniser vos listes d’abonnés et d’abonnés et ne plus suivre ceux qui ne suivent pas.

Config

J’ai décidé de le simplifier au maximum. Fondamentalement, vous téléchargez le bot, puis vous avez un fichier de configuration central:

Comment courir
J’ai décidé de séparer le script en deux parties, avec les deux options de ligne de commande suivantes:
-run: option principale, réellement utilisée pour lancer le script;
-sync: désabonner les utilisateurs qui ne suivent pas.
D’autres options existent, je vous invite à lire le LISEZMOI si vous êtes intéressé!

Note finale
J’ai utilisé ce bot comme un moyen pratique d’apprendre Go. Mon code n’est probablement pas optimal, et je suis ouvert aux contributions et commentaires!
Si vous voulez en savoir plus sur go-instabot ou lire le code, le script est open source.