Créer un avatar Twitter basé sur les données

Auteur: Randy Alexander
Date De Création: 25 Avril 2021
Date De Mise À Jour: 16 Peut 2024
Anonim
Créer un avatar Twitter basé sur les données - Créatif
Créer un avatar Twitter basé sur les données - Créatif

Contenu

Tout d'abord, un avertissement: je ne suis pas un codeur, juste quelqu'un qui utilise du code pour créer des choses.

Heureusement, pour les gens comme moi et ceux qui veulent connecter divers segments d'Internet, il existe un nombre croissant de plates-formes et d'API qui interopèrent, faisant de nombreux projets un cas de compréhension de ce que les plates-formes peuvent faire, puis de connexion du fil bleu. et le fil vert (mais jamais le fil rouge!).

L'une de ces plates-formes est Google Apps Script, un langage de script basé sur le cloud qui expose une API à de nombreuses applications de Google, par exemple les feuilles de calcul, les cartes, la messagerie et l'agenda. Si vous utilisez Google Apps, comme Gmail ou Google Docs, vous avez désormais accès via ces API à vos données. Il utilise une syntaxe simple de type JavaScript. Par conséquent, si vous avez déjà effectué quelques scripts d'interface, vous trouverez votre chemin dans Google Apps Script en un rien de temps.

Ces types d'outils permettent de démontrer très simplement, rapidement et facilement une idée, souvent avec très peu de code. Voici un exemple de jouet récent que j'ai construit, un avatar Twitter basé sur les données.


Ce que j'ai construit

Si vous regardez mon compte Twitter, vous verrez que mon avatar est un bloc de couleur avec un nombre. C'est le nombre approximatif d'e-mails dans ma boîte de réception, et il est mis à jour toutes les 30 minutes. Il m'a fallu environ 30 minutes pour pirater ensemble en raison de la simplicité de Google Apps Script.

L'idée

Il y a quelques années, j'ai lu Everyware par Adam Greenfield, une merveilleuse introduction aux concepts de l'informatique ubiquitaire. Cela suggérait qu'un monde où l'art accroché à nos murs offrirait plus qu'une jolie image à voir, mais aussi des informations ambiantes intégrées. Peut-être que l'image montrait une mer calme quand il faisait beau, ou des eaux agitées et agitées et une tempête lorsque votre carte de crédit était en retard. Beaucoup plus subtile qu'une icône clignotante ou une alarme ping.

Plusieurs années plus tard, j'ai eu une matinée libre pour faire quelque chose de similaire. En règle générale, le nombre d'e-mails dans ma boîte de réception est une bonne mesure du nombre de choses que j'ai faites. Si je suis occupé, je réponds lentement et les e-mails s'accumulent. Et si je pouvais associer le nombre d’e-mails de ma boîte de réception à mon compte Twitter, en remplaçant l’avatar par une image «Rouge / Ambre / Verte» ou «Calme / Occupé / Surchargé»?


Accéder à votre boîte de réception

Commençons par ouvrir un nouveau script Google Apps.

Vous pouvez visiter script.google.com

ou alors

visitez drive.google.com et créez> Plus> Script

Cliquez sur "Créer un projet vide" et vous serez immédiatement présenté avec un éditeur de code, avec une méthode vide appelée maFonction ():

function maFonction () {}

C'est ici que nous déposons notre code pour accéder et contrôler Google Apps.

Il existe une excellente documentation sur les API, que Google expose pour ses plates-formes à developer.google.com/apps-script. Pour cela, nous nous intéressons principalement aux API Gmail, qui se trouvent sur developer.google.com/apps-script/class_gmailapp.

Comme vous pouvez le voir dans la liste des méthodes, vous pouvez effectuer des dizaines de tâches, comme obtenir une liste de tous vos spams (pratique), rechercher dans Gmail (très pratique), obtenir des conversations particulières (très pratique) et récupérer une liste de toutes les conversations dans votre boîte de réception (pour cette tâche, parfait!).


function myFunction () {// récupérer les threads (conversations) de ma boîte de réception var threads = GmailApp.getInboxThreads ();}

Vous pouvez maintenant appuyer sur Exécuter et voir ce que fait votre script. Si c'est la première fois que vous utilisez Google Scripts, une série d'autorisations vous sera demandée, principalement pour permettre à Google Scripts d'accéder à votre boîte de réception, etc. Vous atteindrez une page qui dit quelque chose comme "Votre script est maintenant autorisé à s'exécuter", que vous pouvez fermer, puis appuyez à nouveau sur Exécuter.

Et voilà. Rien.

OK - cela ne fait pas grand chose de plus qu’accéder à votre boîte de réception et récupérer une liste de vos e-mails. Normalement, si vous utilisez JavaScript, vous pouvez consulter la sortie en utilisant alerte() ou écrire la réponse dans la page HTML ou dans une zone de texte, mais comme ce script s'exécute dans le cloud, il n'y a pas d'interface visuelle pour afficher sa sortie, nous devons donc utiliser la classe Logger.

function myFunction () {// récupérer les threads (conversations) de ma boîte de réception var threads = GmailApp.getInboxThreads (); Logger.log (threads);}

Exécutez ce script, et une fois qu’il s’est exécuté, cliquez sur le menu Affichage et sélectionnez «Journaux» (ou appuyez sur Ctrl + Entrée). En supposant que vous avez un e-mail dans votre boîte de réception, vous verrez quelque chose comme:

[GmailThread, GmailThread]

Ceci est un tableau de vos e-mails. Vous pouvez continuer et accéder aux propriétés spécifiques des conversations ici, mais je ne m'intéresse qu'au nombre de conversations.

La modification du code nous permet de traiter uniquement le nombre, plutôt que les threads eux-mêmes.

function myFunction () {// récupérer le nombre de threads (conversations) de ma boîte de réception var inboxcount = GmailApp.getInboxThreads (). length; Logger.log (inboxcount);}

Super simple.

Modifier votre avatar

Ensuite, je souhaite appeler un script PHP que j'ai écrit, qui prend ces données et télécharge une image adaptée au nombre d'e-mails dans ma boîte de réception.

Google Apps Script nous permet d'appeler une URL distante à l'aide du URLFetchApp:

function myFunction () {// récupérer le nombre de threads (conversations) de ma boîte de réception var inboxcount = GmailApp.getInboxThreads (). length; // envoyer la taille de la boîte de réception au script distant UrlFetchApp.fetch ("http://yourserver.com/updateavatar/script.php?count=" + inboxcount);}

Cette seule ligne effectue un appel via HTTP vers mon script distant, ainsi que le nombre de boîtes de réception en tant que variable de chaîne de requête. Le script PHP utilise ensuite l'excellente bibliothèque twitter-async de @jmathai pour se connecter à l'API Twitter REST pour pousser un remplacement de mon avatar par une image sélectionnée:

? php // utilise https://github.com/jmathai/twitter-asyncinclude ’EpiCurl.php’; inclure «EpiOAuth.php»; inclure «EpiTwitter.php»; // Calculez quelle image afficher, en fonction du nombre de boîtes de réception. $ inboxcount = 0; if (isset ($ _GET ['count'])) $ inboxcount = (int) $ _ GET ['count']; if ($ inboxcount 10) {$ imagename = 'n'. $ inboxcount; } else {$ imagename = ceil ($ inboxcount / 10); if ($ nom_image> 5) $ nom_image = 5; } $ filename = dirname (__FILE__). ’/’. $ imagename. ’.Png’; // poussez l'image sur twitter // vous devrez obtenir vos différentes clés API Twitter sur https://dev.twitter.com/apps/new $ twitterObj = new EpiTwitter ($ consumer_key, $ consumer_secret, $ token, $ secret); $ twitterObj-> post (’/account/update_profile_image.json’, array (’@image’ => "@ $ filename")); // oui, c'est vraiment SI simple?>

Mise à jour de l'avatar toutes les heures

Enfin, nous devons exécuter le script toutes les heures pour que l'avatar soit mis à jour. Google Apps Script, encore une fois, vient à la rescousse.

Dans le menu Ressources, vous pouvez accéder à une liste de déclencheurs. Les événements et déclencheurs vous permettent d'exécuter des scripts sur des influences externes, comme le temps qui passe ou des fichiers ouverts ou modifiés. Nous voulons écrire un déclencheur qui exécute le script toutes les heures.

En cliquant sur "Ajouter un nouveau déclencheur", vous obtenez quelques options déroulantes simples, dans lesquelles nous sélectionnons la fonction que nous voulons exécuter (maFonction), l'événement auquel nous voulons nous accrocher (Axé sur le temps), l'événement qui nous intéresse (Minuterie horaire), puis les données elles-mêmes (Toutes les heures). Il s'agit en fait d'un cronjob.

Maintenant, nous pouvons cliquer sur "Enregistrer", partir, et toutes les heures, l'URL distante sera appelée.

Bien sûr, nous ne sommes pas limités à la simple mise à jour d'un avatar, ni même à la base de la taille de la boîte de réception, l'API Google Apps Script est importante, elle vous permet de créer des documents, de connecter de nombreux services Google ensemble et d'automatiser généralement votre Google applications.

J'ai décidé d'appeler une URL distante pour permettre à mon propre serveur de faire le gros du travail (c'est-à-dire télécharger des images, gérer l'OAuth, etc.), mais en fait, Google Apps pourrait se connecter directement à l'API Twitter à l'aide d'appels OAuth et HTTP, ce qui signifie que je pourrais exécuter un script entièrement sur l'infrastructure de Google sans avoir besoin d'un hébergement.

Être capable de démontrer une idée en utilisant seulement une poignée de lignes de code vraiment simple va un long chemin, alors peut-être que la peinture d'une mer orageuse n'est pas si loin.

Intéressant Sur Le Site
Les meilleurs moniteurs portables en 2021
Lire

Les meilleurs moniteurs portables en 2021

Le meilleur moniteur portable vou permettent d'ajouter un deuxième écran à votre ordinateur portable ou notebook, même lor que vou ête en déplacement. Petit , lé...
Les meilleurs moniteurs courbes en 2021
Lire

Les meilleurs moniteurs courbes en 2021

Choi ir l'un de meilleur moniteur incurvé vou offre le luxe d'un grand écran an fatigue oculaire grâce à de angle naturel ur tout votre champ de vi ion. Le meilleur moniteu...
Commencez avec le framework Genesis
Lire

Commencez avec le framework Genesis

Dan le monde WordPre , le framework ont tendance à faire référence à une orte de code de démarrage ou tandard. En démarrant de nouveaux projet de création de thè...