API de réseaux sociaux : le portail Internet vers le monde réel
Publié: 2022-03-11Les API de réseaux sociaux ont parcouru un long chemin depuis que Google a publié la première version de son API YouTube en mai 2008 et Facebook a publié la première version de l'API Graph en avril 2010. Aujourd'hui, ces API vous donnent la possibilité d'interroger les plateformes de réseaux sociaux pour les publications. , les utilisateurs, les canaux et les données démographiques. Ils vous permettent même de créer votre propre service ou d'en savoir plus sur votre base d'utilisateurs.
Dans cet article, nous examinerons les façons dont nous pouvons utiliser certaines des API de réseaux sociaux les plus populaires :
- Facebook (API graphique et marketing)
- Youtube
Nous discuterons également de leurs limites et explorerons certains des outils utiles disponibles pour une utilisation avec ces API. Plus loin dans l'article, nous verrons également comment intégrer ces API dans n'importe quelle application Rails.
Je vais me concentrer sur une API de réseau social à la fois et expliquer ses capacités, ses limites et les outils disponibles. Il y aura une matrice avec les différentes API et leurs propriétés pour une meilleure comparaison plus loin dans cet article.
Pour utiliser les API, vous devez d'abord configurer une application qui crée des requêtes au nom de votre application avec des requêtes basées sur OAuth. Les utilisateurs s'authentifieront auprès de votre application et vous pourrez ensuite accéder à leurs données avec le jeton d'accès utilisateur résultant.
Le FQL (Facebook Query Language) désormais obsolète était un langage de requête de type SQL qui pouvait être utilisé pour accéder à toutes les données de Facebook.
Facebook a publié la première version de son API Graph en avril 2010. La version la plus récente au moment de la rédaction de cet article est la 2.6 qui a été introduite le 12 avril 2016. Il s'agit d'une API HTTP de bas niveau qui peut être utilisée pour interroger des données, créer des publications et même créer des campagnes publicitaires automatisées.
Outils
L'explorateur d'API Graph est l'outil le plus couramment utilisé lorsque vous travaillez avec l'API Facebook. Il vous permet d'exécuter des requêtes d'API Graph dans le navigateur et d'examiner les résultats : vous pouvez utiliser l'un des jetons d'accès de votre application ou en créer un à la volée avec des étendues sélectionnées.
Capacités
L'API Graph est une API basée sur REST qui vous permet de créer, de mettre à jour et de supprimer des objets par requête HTTP sur certains nœuds.
Jeton d'accès
Pour exécuter des requêtes sur l'API Graph, vous avez besoin d'un jeton d'accès qui est obtenu dès qu'un utilisateur s'autorise avec succès dans votre application. Le jeton d'accès doit être stocké par votre application.
Champs d'application
Les étendues déterminent les actions pouvant être effectuées au nom d'un utilisateur. L'application demande certaines étendues lorsqu'un utilisateur autorise une application. L' publish_actions
de la publication_actions, par exemple, permet à une application de publier des publications au nom d'un utilisateur. L'étendue de l'e-mail permet à l'application de lire l'e-mail de l'utilisateur. Un aperçu complet de toutes les portées est répertorié dans la documentation officielle.
Certains champs d'application tels que publish_actions
ou ads_management
nécessitent un examen par Facebook avant la sortie de l'application.
Exemples
Pour démontrer le fonctionnement de l'API Graph, je vais vous montrer comment lire, créer, mettre à jour et supprimer des publications avec l'API.
Pour obtenir vos propres publications, vous pouvez exécuter la requête GET /me/posts
. Le résultat sera une chaîne JSON avec une liste de messages, y compris leur message, created_time et id. Vous pouvez utiliser le pretty
paramètre ou un formateur JSON pour rendre la réponse moins encombrée.
Pour obtenir plus de données sur vos publications, vous pouvez étendre la requête avec des champs comme paramètres de requête. Par exemple, la requête me/posts?fields=reactions, picture
vous donnera l'image et les réactions de la publication.
Pour créer un message, vous pouvez simplement envoyer une action POST contre le flux de bord, par exemple me/feed
, avec des paramètres tels que message: hello world
. L'API Graph renverra un objet JSON avec l'ID de votre publication créée. Vous pouvez ensuite consulter la publication à l'adresse http://facebook.com/[post_id]
.
Pour mettre à jour une publication, vous pouvez envoyer une requête POST au nœud de la publication avec les champs à mettre à jour en paramètres ; par exemple, /[post_id]
et des paramètres comme Message: lorem ipsum
. Un indicateur de succès avec une valeur true ou false sera renvoyé.
Pour supprimer une publication, vous pouvez simplement faire une requête DELETE au nœud avec l'ID de publication (par exemple, /[post_id]
). La valeur de retour sera un objet JSON avec une valeur de réussite de true ou false.
Un aperçu complet de tous les nœuds et actions est disponible dans la référence de l'API Graph.
API marketing
L'API marketing mérite une mention spéciale car il s'agit d'un outil puissant pour gérer les publicités Facebook et obtenir des informations sur les publicités via votre application.
Cela fonctionne de la même manière que les autres méthodes de l'API Graph. Cependant, vous avez besoin du champ d'application ads_management
pour accéder aux annonces de l'utilisateur. Facebook doit également examiner votre application avant de pouvoir la publier.
Essai
Une fois que vous avez créé votre application, elle est en mode développement et automatiquement visible dans le tableau de bord de votre application (c'est-à-dire https://developers.facebook.com/apps/
).
En mode développement, seuls les administrateurs, les développeurs et les testeurs ont accès à votre application. Vous pouvez ajouter des testeurs et des administrateurs dans la section des rôles du tableau de bord de votre application.
Processus de vérification
Lors de l'ajout de certaines autorisations, Facebook doit examiner votre application avant de pouvoir la publier. Le processus d'examen est défini par cet ensemble de lignes directrices.
Afin de soumettre certains éléments pour examen, vous pouvez simplement les ajouter dans la section App Review du tableau de bord de votre application. Facebook vous guidera ensuite tout au long du processus de révision et vous serez alerté une fois votre application approuvée.
Limitations et solutions de contournement
Limites de taux
Une application peut passer 200 appels par heure et par utilisateur au total. Si vous atteignez cette limite, vos appels d'API entraîneront une erreur.
Recherche de publications sur Facebook
Facebook limite la recherche de publications et de tags sur Facebook via l'API Graph et FQL. Cependant, vous pouvez utiliser l'API de recherche Google pour rechercher des publications Facebook publiques, puis utiliser l'identifiant de publication dans l'URL pour récupérer plus d'informations sur des publications spécifiques via l'API Graph.
Obtenir des données d'audience personnalisées
Audience Insights sur Facebook est un outil de recherche puissant pour en savoir plus sur un public particulier en fonction des intérêts, des données démographiques ou d'autres attributs (par exemple, une collection d'adresses e-mail).
Cependant, je n'ai pas trouvé de moyen de créer automatiquement des informations sur l'audience via l'API publicitaire. Faites-nous savoir dans les commentaires si vous avez des idées créatives ou des suggestions à ce sujet.
L'API Instagram a été publiée pour la première fois en avril 2014 et vous permet de créer des applications qui analysent les publications des utilisateurs et aident les utilisateurs à gérer leurs propres publications.
Outils
Étant donné que la console API d'Instagram est obsolète au moment de cet article, je vous recommande d'utiliser Apigee à des fins de test dans votre navigateur.
Capacités
L'API Instagram est une API basée sur REST. Tous ses terminaux sont décrits dans leur documentation officielle.
Jeton d'accès
Pour exécuter des requêtes sur l'API Instagram, vous avez besoin d'un jeton d'accès qui est obtenu dès qu'un utilisateur autorise dans votre application. Pour qu'un utilisateur reçoive un jeton d'accès, il doit être dirigé vers l'URL d'autorisation de votre application. Le serveur redirigera alors l'utilisateur après avoir autorisé votre application et vous pourrez alors lire le jeton.
Champs d'application
Votre application peut demander différentes autorisations. Par exemple, "de base" vous limite à lire les informations de profil et les médias d'un utilisateur. "public_content" vous permet de lire n'importe quel profil public et média au nom d'un utilisateur.
Exemples
Pour démontrer le fonctionnement de l'API Instagram, je vais passer en revue quelques exemples basés sur le point de terminaison média https://api.instagram.com/v1/media/popular
.
Ce point de terminaison renvoie les médias actuellement populaires d'Instagram s'il est passé un jeton d'accès en tant que paramètre. Le résultat sera un tableau JSON de messages contenant, pour chacun, son identifiant de média, un lien vers son image, des likes, des commentaires, l'utilisateur qui l'a posté et quelques autres attributs.
Vous pouvez utiliser apigee pour jouer et en savoir plus sur les points de terminaison de l'API et leurs paramètres.
Essai
Chaque nouvelle application créée sur la plateforme Instagram démarre en mode bac à sable. Il s'agit d'un environnement entièrement fonctionnel qui vous permet de tester les points de terminaison d'API accessibles au public avant de soumettre votre application pour examen.
Pour tester votre application, créez simplement une version intermédiaire et exécutez toutes les requêtes via cette version au lieu de la version en direct qui a été examinée.
Processus de vérification
Les applications en mode bac à sable peuvent utiliser n'importe quel point de terminaison d'API, mais sont limitées à un nombre limité d'utilisateurs et de médias. C'est un excellent mécanisme pour développer et tester une application.
Pour passer en direct et accéder à tout le contenu Instagram, vous devrez soumettre votre candidature pour examen. Une fois examiné, vous ne pourrez demander les champs d'application que pour les utilisateurs pour lesquels votre application a été approuvée.
Limitations et solutions de contournement
Analyse démographique
Au moment de la rédaction de cet article, il n'y a aucun moyen d'obtenir des informations sur l'âge, le sexe ou les intérêts d'un utilisateur public, car Instagram ne vous fournit pas ces informations.
Afin d'obtenir des données démographiques sur les abonnés ou une liste d'utilisateurs d'Instagram, vous devez les parcourir tous et essayer de déterminer leur âge, leur sexe ou leurs intérêts en fonction de leurs abonnés ou des informations fournies dans leur biographie.
Une bonne solution Big Data pour ce problème pourrait être un service précieux pour certaines entreprises.
Limites de taux
Toutes les limites de débit sur la plateforme Instagram sont contrôlées par un jeton d'accès sur une fenêtre glissante d'une heure. Les applications en direct ont des limites de débit plus élevées que les applications en mode Sandbox. La limite de débit globale pour une application en direct est actuellement de 5 000 appels par heure.
L'API Twitter a été publiée pour la première fois en septembre 2006. Il s'agit d'une API REST publique qui fournit un accès en lecture et en écriture aux données Twitter. L'authentification est effectuée à l'aide d'OAuth. Les réponses sont au format JSON.
Outils
Twitter dispose d'un outil de console d'API alimenté par apigee qui peut être utilisé pour tester les requêtes dans le navigateur.
Capacités
L'API REST vous permet d'obtenir les tweets, les abonnés et les personnes suivies d'un utilisateur. Vous pouvez également rechercher des hashtags dans d'autres tweets.
Jeton d'accès
Twitter vous permet de créer des applications auprès desquelles les utilisateurs peuvent s'authentifier en retour d'un jeton d'accès. Le modèle d'authentification est OAuth.
Champs d'application
Seules deux autorisations doivent être définies sur la page de configuration de l'application : lecture seule et lecture et écriture. Ce dernier vous permet de créer des tweets et d'effectuer d'autres actions de publication au nom d'un utilisateur.
Exemples
Pour démontrer l'utilisation de l'API Twitter, je vais récupérer les tweets de l'utilisateur autorisé. Le résultat est un tableau JSON avec les images, les favoris, les retweets, les URL, la date de création et d'autres attributs du tweet. Utilisez Apigee pour jouer et en savoir plus sur les points de terminaison de l'API et leurs paramètres.

Processus de test et d'examen
Il n'y a actuellement aucun processus de révision ou mode de test disponible pour l'API Twitter.
Limitations et solutions de contournement
Analyse démographique
Il n'existe actuellement aucun moyen simple d'obtenir des données démographiques sur les abonnés Twitter de quelqu'un. L'approche de la force brute consisterait à parcourir chaque abonné et à essayer d'obtenir les données via leurs comptes de réseaux sociaux bio et liés.
Vous pouvez ensuite faire d'autres hypothèses basées sur les données de suivi collectées grâce à l'analyse des données. Une autre façon d'obtenir plus d'informations consiste à utiliser la plate-forme d'API d'entreprise payante de Twitter, GNIP. Entre autres choses, il vous permet de créer des audiences et d'obtenir des informations à leur sujet via l'API. L'API est actuellement en BETA.
Limites de taux
Twitter a des limites de débit par utilisateur et sur une base de 15 minutes. Si votre application a plusieurs jetons, vous pouvez simplement alterner les jetons pour les opérations publiques afin d'éviter d'atteindre la limite.
Youtube
L'API YouTube Data a été introduite pour la première fois en janvier 2013. Elle vous permet d'ajouter des fonctionnalités YouTube à votre application, de rechercher du contenu et d'analyser les données démographiques d'une chaîne YouTube. Il s'agit d'une API REST basée sur des jetons OAuth qui renvoie des réponses JSON.
Outils
L'explorateur d'API vous permet de tester les requêtes non autorisées et autorisées. Vous pouvez exécuter des requêtes à partir de votre navigateur sur les points de terminaison fournis.
Capacités
Entre autres choses, vous pouvez travailler avec des activités, des chats, des diffusions en direct, des listes de lecture, des chaînes, des vidéos et des abonnements. La plupart des terminaux nécessitent une autorisation avec un compte YouTube.
Jeton d'accès
L'API YouTube Data prend en charge le protocole OAuth 2.0 pour autoriser l'accès aux données utilisateur privées. Une fois qu'un utilisateur a été autorisé dans votre application, il sera redirigé vers votre application où le jeton d'accès devra être enregistré.
Pour utiliser l'autorisation OAuth 2.0, vous devez d'abord obtenir les identifiants d'autorisation dans la console développeur de Google.
Champs d'application
L'API YouTube Data est actuellement compatible avec les champs d'application suivants :
- Force SSL - Gérez votre compte youtube mais uniquement via une connexion SSL.
- Par défaut - Gérez votre compte YouTube. Cette portée est fonctionnellement identique à la portée youtube.force-ssl mais ne nécessite pas de connexion SSL.
- Lecture seule - Affichez votre compte YouTube.
- Télécharger - Téléchargez des vidéos YouTube et gérez vos vidéos YouTube.
- Audit du canal partenaire - Récupérez les informations que les réseaux multicanaux utilisent comme critères pour accepter ou rejeter un canal dans leur réseau.
Exemples
À titre d'exemple d'utilisation de l'API Youtube Data, les requêtes suivantes demandent des vidéos avec "codage" dans leur titre et leur description :
https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}
Le résultat est un objet JSON contenant le titre, la description, videoId et channelId. Vous pouvez utiliser ce dernier pour en savoir plus sur la chaîne.
Le paramètre part
est requis pour toute demande d'API qui renvoie une certaine ressource. Le paramètre identifie les propriétés de ressource qui doivent être incluses dans une réponse d'API. Par exemple, une ressource vidéo comprend les parties suivantes : snippet, contentDetails, fileDetails, player, processingDetails, recordingDetails, statistics, status, suggestions, topicDetails.
Tous les autres paramètres, à l'exception de la clé API, diffèrent d'un appel à l'autre. En savoir plus à ce sujet dans le guide de référence de l'API.
L'API Pinterest a été initialement publiée en avril 2015. Il s'agit d'une API RESTful qui permet d'accéder aux données Pinterest d'un utilisateur, telles que ses tableaux, ses épingles, ses abonnés, etc. L'API Pinterest utilise OAuth et autorise les autorisations de lecture et d'écriture lors de l'interaction avec le contenu d'un utilisateur.
Outils
Comme d'autres, Pinterest fournit un explorateur d'API pour tester leurs points de terminaison et exécuter des requêtes sur eux. Vous pouvez consulter tous leurs outils ici.
Capacités
L'API Pinterest REST vous permet de créer des épingles, des tableaux et d'interroger des données Pinterest avec OAuth.
Jeton d'accès
Pinterest utilise OAuth 2.0 pour authentifier les requêtes entre votre application et vos utilisateurs. Toutes les demandes doivent être faites via HTTPS.
Champs d'application
Les étendues déterminent ce qu'une application peut faire pour le compte d'un utilisateur. Pinterest utilise les champs d'application suivants :
-
none
(doit connaître l'identifiant) : utilisez la méthode GET sur le profil d'un utilisateur, les détails du tableau et de la broche, et les broches sur un tableau. -
read_public
: utilise la méthode GET sur les épingles, les tableaux et les goûts d'un utilisateur. -
write_public
: utilisez les méthodes PATCH, POST et DELETE sur les épingles et les tableaux d'un utilisateur. -
read_relationships
: utilisez la méthode GET sur les suivis et les abonnés d'un utilisateur (sur les forums, les utilisateurs et les intérêts). -
write_relationships
: utilisez les méthodes PATCH, POST et DELETE sur les suivis et les abonnés d'un utilisateur (sur les tableaux, les utilisateurs et les intérêts).
Exemples
Pour démontrer l'utilisation de l'API Pinterest, je vais montrer comment lire les dernières épingles de l'utilisateur :
https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at
renverra les épingles d'un utilisateur avec leur identifiant, lien, note, url, likes et repins.
Processus de test et d'examen
Les applications sont initialement en mode développement et doivent être soumises pour examen avant d'être publiées en mode production.
Limitations et solutions de contournement
Analyse démographique
Il n'existe aucun moyen courant d'obtenir des données démographiques à partir d'un tableau. Cependant, vous pouvez essayer d'obtenir les abonnés d'un tableau et des informations à leur sujet à partir de leur biographie et des liens vers d'autres comptes de réseaux sociaux. Une solution Big Data sur les connexions communes de l'utilisateur serait également une possibilité.
Rechercher des épingles
Il n'existe actuellement aucun moyen de rechercher des épingles avec certaines balises ou mots-clés via l'API. Vous pouvez contourner cette limitation en utilisant l'API Google Custom Search pour rechercher des résultats sur les broches Pinterest uniquement et recueillir l'ID de la broche via l'URL. L'ID peut ensuite être utilisé pour obtenir des informations sur la broche via l'API.
Limites de taux
Chaque application (avec un ID d'application unique) est autorisée à 1 000 appels par point de terminaison et par heure pour chaque jeton d'utilisateur unique.
Chaque réponse d'API renvoie un en-tête qui vous donne une mise à jour sur les limites de débit. X-Ratelimit-Limit est la limite de débit pour cette demande spécifique, et X-Ratelimit-Remaining est le nombre de demandes qu'il vous reste dans la fenêtre de 60 minutes.
Si vous dépassez votre limite de débit pour un point de terminaison donné, vous obtiendrez un code d'erreur 429 « Trop de requêtes ».
Comparaison des API de réseaux sociaux
Version | OAuth | Format | Démographie | |
---|---|---|---|---|
v2.6 Version initiale : avril 2010 | OAuth 2 | Requêtes REST avec réponses JSON | Prise en charge | |
v1 Version initiale : avril 2014 | OAuth 2 | Requêtes REST avec réponses JSON | Non supporté | |
v1.1 Sortie initiale : septembre 2006 | OAuth 1 | Requêtes REST avec réponses JSON | Uniquement pris en charge avec GNIP | |
Youtube | v3 Version initiale : janvier 2013 | OAuth 2 | Requêtes REST avec réponses JSON | Prise en charge |
v1 Version initiale : avril 2015 | OAuth 2 | Requêtes REST avec réponses JSON | Non supporté |
Application de démonstration avec Devise
L'intégration de ces API dans vos applications nouvelles ou existantes, grâce à une pléthore de packages et de bibliothèques d'API de réseaux sociaux, est plus facile que jamais. La plupart des plateformes et frameworks modernes ont des bibliothèques tierces éprouvées qui unifient même l'aspect authentification de toutes ces API en une seule bibliothèque avec une architecture de plug-in soignée.
Pour cet article, nous verrons comment Devise, un joyau Ruby, le fait avec élégance pour les applications Rails. Devise est une bibliothèque d'authentification flexible basée sur Warden qui implémente l'authentification, l'enregistrement, la connexion et le stockage de données pour plusieurs fournisseurs de connexion. Si vous êtes plutôt un gars frontal et que vous voulez vérifier quelque chose de similaire pour AngularJS, jetez un œil à cet article.
Devise, comme la plupart des bibliothèques de cette classe, ne prend pas en charge les API de réseaux sociaux mentionnées ci-dessus. La prise en charge de chacune de ces API de réseau social est assurée par des gemmes supplémentaires. Les gemmes suivantes sont disponibles pour l'authentification Rails qui couvrent les 5 fournisseurs abordés dans cet article :
gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'
Étant donné que ceux-ci ne fournissent que l'authentification, l'enregistrement, la connexion et le stockage pour chacun de ces fournisseurs, nous devrons également obtenir les gemmes suivantes pour les clients API réels :
gem 'twitter' # https://github.com/sferik/twitter gem 'instagram' # https://github.com/facebookarchive/instagram-ruby-gem gem 'koala' # (Facebook API) https://github.com/arsduo/koala gem 'google-api-client' # (YouTube API), https://github.com/google/google-api-ruby-client gem 'pinterest-api' # https://github.com/realadeel/pinterest-api
Omniauth et authentification
Pour qu'un utilisateur autorise votre application auprès de votre fournisseur, vous pouvez simplement fournir un lien avec le chemin suivant :
omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...
Afin de réagir au rappel après l'authentification d'un utilisateur, vous pouvez définir un OmniauthCallbacksController avec les étendues comme des fonctions telles que :
class AuthenticationsController < Devise::OmniauthCallbacksController def facebook if request.env["omniauth.auth"] ... end end end
C'est l'endroit où ajouter un nouveau modèle d'authentification avec le jeton et les données dans votre application :
authentication = where(provider: omniauth.provider, user_id: user.id) .first_or_create do |auth| auth.user = user auth.uid = omniauth.uid auth.secret = omniauth.credentials.secret auth.token = omniauth.credentials.token ... end
Faire des appels d'API
Voici un exemple d'utilisation de Koala pour interroger l'API Facebook. Les autres fournisseurs fonctionnent plus ou moins de la même manière et sont documentés dans le fichier README de la gemme.
Voici comment vous obtenez vos données d'utilisateur en utilisant Koala :
authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object("me")
Vous pouvez ensuite utiliser le résultat JSON renvoyé par l'API. Le code source de cette application de démonstration est disponible sur GitHub.
Emballer
Les API de réseaux sociaux vous fournissent un outil puissant pour interroger le vaste ensemble de données des réseaux sociaux et collecter des mégadonnées pour votre application. Vous pouvez créer un service au-dessus de ces API ou les utiliser pour améliorer votre propre application et les informations sur les utilisateurs.
Les rails et les gems disponibles facilitent l'intégration de ces API dans votre application Rails et interrogent les interfaces avec une couche d'abstraction entre votre application et l'API.