4 votes

Comment obtenir un jeton d'accès utilisateur en Python

J'utilise le sdk python non officiel pour Facebook. Cela fonctionne bien pour de nombreux appels à l'API graphique, mais mon récent projet nécessite l'utilisation de plus de FQL. Certaines tables (notifications par exemple) nécessitent un jeton d'accès utilisateur plutôt qu'un jeton d'accès application.

Lorsque vous utilisez

graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials 

il semble que je ne reçoive qu'un jeton d'application en retour. Ainsi, lorsque j'appelle le tableau de notification, je reçois un message "102 : Un jeton d'accès utilisateur est nécessaire pour demander cette ressource".

Ce projet n'utilise pas du tout de navigateur, et est principalement créé pour valider les notifications, et les messages générés par une autre application.

Quelle est la meilleure façon de recevoir un jeton d'utilisateur dans ce cas ?

Merci N

13voto

Nitzan Tomer Points 11798

Vous ne pouvez pas obtenir un jeton d'accès utilisateur sans une interaction directe d'un utilisateur connecté avec votre application en utilisant les flux d'authentification facebook. Le seul jeton qui peut être obtenu sans utilisateur est le jeton d'application et vous l'avez déjà couvert.

Vous pouvez créer un jeton d'utilisateur manuellement, la manière la plus simple, je pense, serait d'utiliser la fonction Outil Graph Explorer . Il vous suffit de sélectionner votre application en haut à droite, puis de cliquer sur le bouton "Obtenir un jeton d'accès" vous pouvez alors vérifier les autorisations nécessaires et après cela, un jeton généré apparaîtra dans la zone de texte, copiez-le et utilisez-le.

Le problème est que le jeton d'accès est de courte durée (quelques heures). Si vous avez besoin d'un jeton plus long, je vous suggère de créer une application de type "canvas" qui n'implémentera que la méthode d'accès à la base de données. Authentification côté serveur qui se terminera par un jeton à longue durée de vie (60 jours), vous pourrez alors le faire persister et l'utiliser pendant cette période.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X