Comment créer un bot Twitter sur le Coronavirus? API, Google Scripts & Zapier.

Découvrez comment faire appel à une API depuis Google Scripts et envoyer automatiquement les données obtenues vers Twitter avec Zapier.

Photo de couverture de l’article. Twitter — Api — Zapier — Google Scripts— Coronavirus. Corentin Robert (www.cocobay.io).
Photo de couverture de l’article. Twitter — Api — Zapier — Google Scripts— Coronavirus. Corentin Robert (www.cocobay.io).

Suite à la propagation du Coronavirus (COVID-19) qui touche toute la planète, je me suis amusé à bidouiller avec une API pour suivre quotidiennement l’évolution du virus en Chine à l’aide d’un Bot Twitter.

Si cela vous intéresse de suivre l’évolution quotidienne du COVID-19 et de découvrir comment créer un bot Twitter qui partage automatiquement le nombres de cas suspects, de personnes malades et décédés alors l’article est fait pour vous!

  • Présentation du bot Twitter
Profile Twitter de @covid19daily. Twitter — Api — Zapier — Google Scripts- Coronavirus. Corentin Robert (www.cocobay.io).
Profile Twitter de @covid19daily. Twitter — Api — Zapier — Google Scripts- Coronavirus. Corentin Robert (www.cocobay.io).

Voici le profil Twitter que j’ai crée @coviddaily. Ce dernier compte, au moment où j’écris l’article, 11 Tweets et partage quatre informations quotidiennes différentes:

  • Nombre de cas contaminés.
Image for post
Image for post

Pour rendre le Bot @coviddaily encore plus attrayant, j’aurais pu partager la différence entre le nombre de cas suspects et décédés de la veille de publication et ceux du jour. Une photo de la courbe des différents paramètres aurait également permis de mieux visualiser l’évolution du virus dans le pays.

  • Mais, au fait, comment ça fonctionne?

Explication point par point, pour comprendre comment un bot Twitter qui partage quotidiennement les informations à propos du Coronavirus.

  • Identification des informations depuis une API.

Une API est une interface de programmation qui permet de communiquer de la donnée d’une application à une autre. Je me suis donc mis à fouiller sur le net pour trouver une API fiable, qui recoupe plusieurs sources de données gouvernementales… histoire de ne pas partager des fausses informations. Je suis tombé sur celle-ci, proposé par John Coene et qui permet d’obtenir quotidiennement les données sur l’évolution du Coronavirus en Chine.

  • Recueille des informations de l’API dans un spreadsheet.

Une fois l’API et les informations identifiées, on va chercher à collecter et structurer la donnée dans un Google Sheets. Pour cela, on exécute un script .js sur Google Scripts (option > éditeur de scripts) pour “appeler” les données de l’API et les répertorier dans un onglet, comme ici.

Données envoyées sur Google Sheet. Twitter — Api — Zapier — Google Scripts- Coronavirus. Corentin Robert (www.cocobay.io).
Données envoyées sur Google Sheet. Twitter — Api — Zapier — Google Scripts- Coronavirus. Corentin Robert (www.cocobay.io).

Explication de mon script ci-dessous ↓↓

1. Appeler l’API et faire référence à l’onglet dans lequel on souhaite recevoir les informations.

function callNumbers() {

var ss = SpreadsheetApp.getActive();

var sh = ss.getSheetByName(“Covid-19”);

var response = UrlFetchApp.fetch(“http://shiny.john-coene.com:8080/weixin");

2. Organiser les informations telles que l’on souhaite les recevoir dans notre spreadsheet.

var data = response.getContentText()

var jsn = JSON.parse(data)

var f = new Array();

var fnl = new Array();

Logger.log(jsn.data[0])

for (var i in jsn.data){

f =[];

f.push(jsn.data[i].date);

f.push(jsn.data[i].confirm);

f.push(jsn.data[i].suspect);

f.push(jsn.data[i].dead);

f.push(jsn.data[i].heal);

f.push(jsn.data[i].nowConfirm);

f.push(jsn.data[i].nowSevere);

f.push(jsn.data[i].deadRate);

f.push(jsn.data[i].healRate);

fnl.push(f)

}

3. Envoyer les informations de l’API dans notre spreadsheet.

var r = sh.getLastRow()+ 1;

Logger.log(fnl[fnl.length-1])

sh.getRange(r,1,1,fnl[fnl.length-1].length).setValues([fnl[fnl.length-1]])

On indique ici que l’on souhaite récupérer uniquement la dernière ligne d’information. C’est ultra important pour la suite…

4. Last but not least… Automatiser la requête API quotidiennement

L’API que j’utilise pour récolter les informations sur le Coronavirus (COVID-19) se met à jour tous les jours à 9:00. Pour qu’une nouvelle ligne soit créée, chaque jour à 9:00, dans mon spreadsheet — onglet “COVID-19”, j’ai enrichie mon script avec cette fonction. ↓↓

function uhuh(){

ScriptApp.newTrigger(‘callNumbers’)

.timeBased()

.everyDays(7)

.atHour(9)

.create();

}

Ce script complet permet de faire une requête API, de collecter & trier les informations, de les afficher sur un Google Sheets et de la faire vivre automatiquement sans la moindre action humaine!

  • Envoie des informations de Google Sheet vers Twitter avec Zapier.

Avec la création du script automatisée, plus dure est passé. On cherche dorénavant à automatiser l’envoie d’informations de Google Sheets vers Twitter.

Rien de très compliqué avec Zapier, outil qui permet d’automatiser et de faire un transfert d’informations entre différentes plateformes. On va donc créer un “Zap”, comme expliqué dans mon article à ce sujet, qui relie Sheets et Twitter et qui se déclenche dès qu’une nouvelle ligne sur Sheets est créée.

Zapier entre Twitter et Google Sheet. Twitter — Api — Zapier — Google Scripts- Coronavirus. Corentin Robert (www.cocobay.io).
Zapier entre Twitter et Google Sheet. Twitter — Api — Zapier — Google Scripts- Coronavirus. Corentin Robert (www.cocobay.io).

Pour reproduire ce Zap, je vous invite à cliquer ici.

C’est fini! On obtient donc un bot Twitter qui publie automatiquement, à 9:00, les nouvelles informations envoyées du spreadsheet depuis l’API de John Coene.

  • Et après?

Créer ce bot Twitter @covidaily était pour moi l’occasion de découvrir comment manipuler une API depuis Google Scripts et partir de ce cas concret pour bidouiller dessus. Je ne vois aucune suite à ce projet même si je reste persuadé qu’il pourrait être amélioré. Voici quelques pistes d’amélioration qui semblent intéressantes d’explorer:

  • Intégrer des informations sur l’évolution de la maladie de jour X à Y.

Si vous trouvez intéressant d’échanger sur l’évolution du projet et / ou que vous aimeriez avoir accès au projet, n’hésitez pas à m’envoyer un mail.

Mots de fin

Cette article à pour vocation d’expliquer simplement comment faire une requête API depuis Google Sheets pour ensuite l’envoyer sur Twitter mais vous pouvez faire de nombreuses actions automatisées.

Je me suis notamment amusé à faire des requêtes sur l’API de Unsplash pour partager une photo par jour de la Thaïlande sur ce compte Twitter. Le bot partage les photos avec +60 likes et ne sélectionne que les publications en rapport direct avec la Thaïlande. Dans un exercice plus “business”, on peut faire appel à l’API de Clearbit qui permet d’enrichir des bases de données à partir d’un simple mail ou mot clé. On peut notamment récupérer le logo, nom, prénom, le nom de domaine, etc.

Cette article et le bot Twitter n’aurait pas pu voir le jour sans l’inspiration donné par @Micode et l’aide de Raphaël Hor (Hetic — P2021). Merci!

Rédigé par Corentin Robert le 16 Mars 2020.

👨‍💻 Retrouvez d’autres articles tech & voyages sur mon blog: cocobay.io

👉 Suivez moi sur mon profil Instagram et Twitter.

Marketing Digital & UX @ Hetic | Paid Acquisition Analyst Intern @papernest - Ex Airbnb Intern | https://cocobay.io/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store