0

Je travaille sur une API qui va agréger des données de plusieurs sites Web, y compris Facebook. L'API dispose d'un moteur qui collecte les données à intervalles réguliers, puis l'application cliente interroge l'API pour obtenir les données de tous les sites Web de manière centralisée. Le problème est que l'API n'a aucun moyen de s'authentifier sur les récoltes régulières, en coulisses, car Facebook insiste sur le fait que l'utilisateur doit cliquer sur le dialogue OAuth. Avec l'histoire courte étant qu'il n'y a aucun moyen de se connecter à l'API de graphe en silence cela signifie presque que le développement d'une telle API n'est pas possible (sauf pour récolter uniquement des données publiques).Comment simuler une connexion silencieuse à Facebook Graph API?

Cependant, je ne suis pas facilement satisfait par les réponses «ce n'est pas possible» et mes clients - encore moins. L'accès à des informations privées sur Demmand est vraiment possible car les applications Facebook le font. Par exemple, l'application Twitter officielle affiche sur mon mur chaque fois que je tweet. Je suppose que les applications n'ont besoin d'une autorisation qu'une seule fois et peuvent ensuite accéder au profil de l'utilisateur autant qu'elles le souhaitent. Cela m'amène à penser que je devrais faire une combinaison d'un client Graph API et d'une application qui se parlent, et chaque fois que l'API doit récolter - il demande à l'application d'obtenir les données et de les récupérer dans l'API. Ou peut-être que ce devrait être un modèle push (l'application envoie les données à chaque génération) plutôt que de tirer (l'API demande les données à intervalles réguliers). Suis-je sur la bonne voie? Est-ce que l'une d'entre elles est l'approche de conception correcte?

J'ai fait quelques recherches, mais il est très difficile de trouver une discussion utile sur le sujet car quels que soient les mots-clés que j'essaie, je ne trouve que le type de discussion.

Répondre

2

Vous devez vérifier l'autorisation offline_access. Cela vous permet d'accéder aux données d'un utilisateur lorsqu'elles n'ont pas de session active ou sont hors ligne. C'est aussi proche que possible de "connexion silencieuse".

+0

Oui, c'est quelque chose que je devrai utiliser si ce design général s'avère réalisable, merci. Je ne suis pas encore arrivé à ce point (et je n'ai pas eu à voter des commentaires aussi) – Vroomfundel

+0

Je suis d'accord. Si vous effectuez une procédure de connexion et enregistrez le jeton d'accès, celui-ci restera valide jusqu'à ce que l'utilisateur supprime votre application, que vous expiriez le jeton ou que l'utilisateur se déconnecte explicitement. –