3 votes

Jeton d'accès Facebook à partir d'un cookie de site Web à l'aide de new OAuth et de C#

D'accord, j'ai vu cette question posée, mais je n'ai pas encore trouvé de réponse simple et efficace.

Un utilisateur arrive sur mon site web et a déjà "autorisé" mon site/application en utilisant la boîte de dialogue de connexion standard de Facebook - EN UTILISANT oauth.

Lorsqu'il revient sur mon site, l'utilisateur a un cookie sur son ordinateur qui commence par "fbsr_%" - d'après ce que j'ai lu, c'est considéré comme "le code".

Ce que j'aimerais faire maintenant, c'est récupérer ce cookie côté serveur, faire un appel à facebook, d'après ce que j'ai trouvé, je suis censé appeler : "https://graph.facebook.com/oauth/access\_token?client\_id={0}&redirect\_uri={1}&client\_secret={2}&code={3}"

puis recevoir en retour l'accesstoken...

J'aimerais recevoir le jeton d'accès sans avoir à rediriger l'utilisateur sur le client. Donc ce que j'ai jusqu'à présent est comme suit, et d'après ce que j'ai compris, c'est censé fonctionner, mais pour moi cela me donne toujours une erreur "Le serveur distant a retourné une erreur : (400) Bad Request."

string url = "https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&client_secret={2}&code={3}";  
string redirectUri = "http://www.mysite.com/";  
string code = Request.Cookies["fbsr_" + clientId].Value;

WebRequest request = WebRequest.Create(string.Format(url, clientId, redirectUri, clientSecret, code));    
WebResponse response = request.GetResponse();

Stream stream = response.GetResponseStream();  
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");  
StreamReader streamReader = new StreamReader(stream, encode);  
string accessToken = streamReader.ReadToEnd().Replace("access_token=", "");  
streamReader.Close();  
response.Close();  

Toute aide serait grandement appréciée

1voto

Fischer Points 121

Maintenant que Facebook exige SSL pour les applications, votre "redirect_uri" doit être https (c'est-à-dire https://apps.facebook.com/myapp/ ), sinon vous obtiendrez "Bad Request".

Le "redirect_uri" pour le access_token (https://graph.facebook.com/oauth/access\_token) doit être les mêmes comme lorsque vous demandez le code qui exige que l'utilisateur s'identifie et se connecte à votre application (https://graph.facebook.com/oauth/authorize ou https://www.facebook.com/dialog/oauth ) ou vous obtiendrez la même erreur, "Bad Request".

-1voto

Jelo Melo Points 52

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