Je commence à utiliser Facebook Graph API et je vais récupérer un jeton d'accès avec des requêtes HTTP simples via java.Comment détecter la redirection pour récupérer access_token via java
Après https://developers.facebook.com/docs/authentication/ je créé une nouvelle application, mais je ne dispose pas d'un domaine pour je fais une requête HTTP à
www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID &
redirect_uri = https: pour un flux côté serveur //www.facebook.com/connect/login_success.html
, et je suppose que pour obtenir rediriger vers une page de succès avec un code dans l'URL. Ensuite, je voudrais utiliser ce code faire une autre demande HTTP à
graph.facebook.com/oauth/access_token? client_id = YOUR_APP_ID & redirect_uri = YOUR_URL & client_secret = YOUR_APP_SECRET Code & = THE_CODE_FROM_ABOVE
et enfin obtenir mon jeton d'accès.
J'utilisé à la fois java.net.HttpURLConnection
et org.apache.http.HttpResponse
, mais, dans les deux cas, l'exécution du premier appel que je reçois comme réponse le code HTML d'une page de connexion Facebook.
Si j'utilise ce code HTML pour créer une page Web et que je clique simplement sur le bouton Connexion (sans insérer de nom d'utilisateur et de mot de passe), j'obtiens la page de succès avec le code!
Dans le HTML le champ de soumettre le bouton Connexion est vide et je ne peux pas récupérer les URL de redirection ... Je viens de lire un autre lien dans la balise <meta>
qui génèrent un auth_token (c'est-il? Il est très différent par rapport à un access_token normal ...).
Alors ce que je demande est:
il est possible de détecter la redirection cachée d'une manière juste en utilisant
java.net.HttpURLConnection
ouorg.apache.http.HttpRespons
e?Si oui, comment fonctionne le mécanisme? Est-ce lié au
auth_token
?Si non, est-ce possible avec d'autres bibliothèques? (J'ai aussi utilisé restfb, mais ils semblent avoir besoin d'un jeton d'accès inséré "à la main" comme argument , et j'ai aussi vu facebook-java-api mais ça semble vieux).
Aussi, si je suis connecté Facebook, l'exécution du premier appel HTTP via Java je reçois comme réponse le code HTML d'une page de connexion Facebook.
En utilisant HTML pour créer une page Web et puis je clique simplement sur le bouton de connexion (sans insérer le nom d'utilisateur et mot de passe) Je reçois la page success.htm avec le paramètre de code dans l'URL.
Si j'utilise l'URL d'origine directement dans mon navigateur, je peux directement obtenir la page success.htm sans passages au milieu.
Donc je suppose que le problème est dans la gestion des cookies: en Java (exécuté dans Eclipse) je ne peux pas accéder aux cookies de mon navigateur. J'ai essayé de rediriger pour utiliser une servlet mais j'ai l'erreur sur le domaine: ServletURL n'est pas un domaine Facebook ou un "site URL" enregistré pour mon application (en fait, je n'ai pas défini d'URL de site pour mon app ... et c'est le problème de base).
Dans tous les cas ici http://developers.facebook.com/docs/authentication/ dans la section types App> applications de bureau, ils disent:
[...] Une fois l'utilisateur autorise votre application [je laissais tout], nous redirigent l'utilisateur Retour à la redirect_uri avec le jeton d'accès à le fragment URI: [...]
DETECT redirect puis lisez le jeton d'accès de l'URI quels que soient les mécanismes à l'aide fournis par votre cadre de choix. [...]
Donc je pense qu'il est encore possible de détecter cette redirection via Java. Comment?
Merci à l'avance! –