Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Twitter
Code

Construire avec l'API Twitter: Analyser vos suiveurs

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Building With the Twitter API.
Building With the Twitter API: Creating Friends to Follow
Using the Twitter API to Tweet Repetitive Content

French (Français) translation by New Lune (you can also view the original English article)

Final product image
What You'll Be Creating

Introduction

Bienvenue dans le dernier épisode de notre série API Twitter. Dans notre dernier épisode, j'ai créé Twixxr.com qui vous permettra de découvrir des femmes influentes sur Twitter pour votre compte à suivre. Aujourd'hui, je vais mettre l'accent vers l'intérieur pour regarder mes propres suiveurs.

Bien que je n'utilise pas vraiment Facebook depuis 2013, je suis restée active sur Twitter—même s'ils ont alimenté mes annonces et m'ont agacé en essayant de l'optimiser par algorithme.

Récemment, j'ai été vérifié et j'ai commencé à rassembler des abonnés à un rythme légèrement plus rapide. J'avais l'espoir que je pourrais voir plus de réponse à mes tweets. D'une manière générale, j'ai été surpris de la faible réponse qu'il y a sur Twitter pour la personne moyenne.

Building With the Twitter API reifman profile on twitter with verified checkmark

J'ai près de 1,900 suiveurs, mais rarement les gens commentent ou retweet des pièces qui me semblent importantes et d'intérêt général. Par exemple, aucune personne n'a partagé mon morceau sur la forte pointe des rapports de viol à Seattle ou le commentaire de Bill Gates à son plus scandaleusement hypocrite.

Pendant longtemps, j'ai voulu regarder de plus près mes suiveurs Twitter et répondre à certaines questions: Qui me suit exactement? Et pourquoi ne sont-ils pas plus interactifs? Est-il possible que seulement 10% de mes suiveurs soient des personnes réelles?

Twitter a eu du mal à trouver un acheteur, et peut-être que cela a quelque chose à voir avec cela.

L'API de Twitter est un bon outil pour y enquêter. Pourtant, il a une tonne de limites de taux qui rendent même quelque chose de simple comme l'analyse de vos adeptes assez complexe. Dans l'épisode d'aujourd'hui, je vais vous montrer comment j'ai travaillé avec les limites de taux pour évaluer et construire un tableau de bord de mes suiveurs.

Si vous avez des questions ou des commentaires, postez-les ci-dessous dans les commentaires ou contactez-moi sur Twitter @reifman.

Analyser nos suiveurs de Twitter

Building With the Twitter API Initial scoreboard

Juste au-dessus, vous pouvez voir le tableau de bord de base que j'ai créé. L'épisode d'aujourd'hui se concentrera principalement sur l'infrastructure et l'approche que j'ai prises pour créer cela. J'espère avoir la possibilité d'en apprendre davantage sur l'amélioration du mécanisme de notation.

Et oui, comme vous le voyez ci-dessus, le célèbre champion des droits des homosexuels et le conseiller sexuel, Dan Savage, me suit, mais ne retweet jamais tout ce que je partage. S'il y a du temps aujourd'hui, nous analyserons ceci pour répondre à des questions importantes comme: est-il réel, un robot ou simplement me suit pour des conseils sexuels personnels? Que pouvons-nous apprendre de son compte pour déterminer s'il est susceptible d'interagir avec moi sur Twitter ou, d'ailleurs, avec l'un de mes autres suiveurs?

Le code du tableau de bord est principalement un prototype que j'ai construit au-dessus du code Twixxr du dernier épisode, mais ce n'est pas une démonstration en direct pour les utilisateurs. Je partage afin que vous puissiez apprendre de cela et construire vous-même.

Voici les éléments de base du code:

  • Création de la base de données pour stocker mes adeptes et les données connexes.
  • Télécharger mes adeptes dans les pages de 20 abonnés.
  • Suivre les curseurs pour les pages en téléchargeant une fenêtre limitée de 15 pages par taux.
  • Stockage des données collectées sur mes adeptes dans la base de données.
  • Construire un prototype d'algorithme de notation pour marquer tous les adeptes.
  • Création d'une vue pour parcourir le tableau de bord.

Plonger dans le code

Création des migrations de table de base de données

J'ai créé trois tables différentes pour stocker toutes les données et m'aider à travailler avec la limitation du taux d'API de Twitter. Si vous ne connaissez pas les migrations de la base de données Yii, consultez la section Comment programmer avec Yii2: Utilisation de la base de données et de l'enregistrement actif.

Tout d'abord, j'ai étendu la table SocialProfile pour enregistrer beaucoup plus de données sur les comptes du suiveur, qu'il s'agisse de vérification, de localisation et de nombre d'éléments qu'ils ont favorisés:

Ensuite, j'ai construit une table d'indexation appelée SocialFriend pour suivre les utilisateurs pour des comptes spécifiques. Si je décide de formaliser ce service publiquement, j'aurai besoin de cela. Il associe la table User aux adeptes de l'utilisateur dans la table SocialProfile.

Ensuite, l'API de Twitter exige que vous puissiez passer des demandes de 20 abonnés à la fois. Pour connaître la page suivante, vous devez suivre les curseurs, essentiellement les étiquettes, qui marquent la page suivante à récupérer.

Puisque vous n'êtes autorisé à faire que 15 demandes d'adeptes toutes les 15 minutes, vous devez mémoriser ces curseurs dans la base de données. Le tableau s'appelle SocialCursor:

Finalement, je vais créer des tâches cronales de fond pour gérer tout cela, mais pour le prototype d'aujourd'hui, je cours ces tâches à la main.

Collecte des utilisateurs et leurs données de compte

Ensuite, j'ai créé une méthode Twitter::getFollowers() pour faire la demande. Voici les bases du code:

Il obtient le next_cursor et demande à plusieurs reprises des adeptes, $followers = $this->connection->get("followers/list",['curseur'=>$next_cursor]), jusqu'à ce qu'il atteigne les limites de taux.

La sortie ressemble à quelque chose comme cela se produit dans chaque page de 20 résultats:

Les données sont stockées par ces $sp->add($ user_id,$u);  méthodes. La méthode SocialProfile::add() est une version différente de la méthode fill() du tutoriel Twixxr. Il stocke plus de données et gère l'indice SocialFriend:

Il est écrit pour enregistrer de nouveaux enregistrements ou mettre à jour les anciens enregistrements afin que vous puissiez suivre à l'avenir vos données suiveuses et les mettre à jour régulièrement, en écrasant les anciennes données.

Cette dernière section à la fin permet de s'assurer qu'il existe un index de l'indice SocialFriend entre la table User et la table SocialProfile.

Marquant les adeptes de Twitter

Building With the Twitter API - Accounts with huge numbers of friends unlikely to read my tweets

J'ai eu une poignée de buts pour mes notations Twitter:

  • Éliminez les comptes qui suivent tout le monde qui les suit. Par exemple, ils ont 12 548 abonnés et suivent 12 392 personnes (voir ci-dessus).
  • Éliminez les comptes qui suivent plus que 1 500 comptes qui ne risquent pas de voir ce que je partage. Par exemple, Dan Savage suit 1.536 personnes.
  • Éliminez les comptes qui ont très peu de messages ou très peu de comptes qu'ils suivent, probablement des comptes abandonnés.
  • Éliminez les comptes avec quelques favoris—ce sont probablement des robots, n'utilisant pas vraiment l'application.

De même, je voulais souligner certains aspects positifs:

  • Comptes vérifiés
  • Comptes qui ont beaucoup de suiveurs
  • Les comptes qui ont moins de 1000 personnes qu'ils suivent—un bon endroit pour moi

Voici un code de base brut de SocialProfile::score() qui souligne certains des points positifs:

Voici un code qui élimine certains des comptes défectueux:

De toute évidence, il y a beaucoup de choses à jouer ici et diverses façons d'améliorer cela. J'espère avoir une chance de passer plus de temps à ce sujet.

Au fur et à mesure que la méthode fonctionne, cela ressemble à ceci, mais met à jour la table de travail social avec les scores en cours:

Affichage du tableau de bord

La grille par défaut de Yii rend très simple d'afficher la table SocialProfile et de personnaliser les colonnes du tableau de bord.

Voici SocialProfileController::actionIndex():

Et voici la vue de grille personnalisée:

Voici à quoi ressemblent les meilleurs résultats avec mon algorithme initial:

Building With the Twitter API - Top Scoring Accounts

Il existe de nombreuses façons d'améliorer et d'accorder la notation. Je suis impatient de jouer avec plus.

Et il y a plus que j'aimerais écrire du code et élargir mon utilisation de l'API, par exemple:

  • Utilisez le genre PHP pour aider à éliminer les entreprises des personnes (les entreprises n'interagissent pas beaucoup).
  • Recherchez la fréquence des publications que les gens ont faites et la dernière fois qu'ils ont utilisé Twitter.
  • Utilisez l'API de recherche de Twitter pour voir quels utilisateurs ont réellement interagi avec mon contenu.
  • Fournissez des commentaires à la notation pour l'accorder.

Regarder vers l'avant

J'espère que l'approche de notation est intrigante. Il y a tellement plus de choses qui peuvent être faites pour améliorer cela. N'hésitez pas à jouer avec vous et à publier vos idées ci-dessous.

Si vous avez des questions ou des suggestions, veuillez les publier dans les commentaires. Si vous souhaitez suivre mes futurs tutoriels Envato Tuts+ et d'autres séries, visitez ma page d'instructeur ou suivez @reifman. Vérifiez définitivement ma série de démarrage et Meeting Planner.

Liens connexes

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.