2011-11-02 3 views
0

Mon code de connexion est la suivante:Connexion à Facebook en utilisant C# Facebook SDK

String appId = Facebook.FacebookApplication.Current.AppId; 
var oauth = new FacebookOAuthClient { AppId = appId }; 
var parameters = new Dictionary<string, object> 
{ 
    { "response_type", "code" }, 
    { "display", "popup" }, 
    { "scope", "email" } 
}; 
var loginUrl = oauth.GetLoginUrl(parameters); 
Response.Redirect(loginUrl); 

Je reçois l'erreur: sur la dernière ligne ne peut pas convertir « de System.Uri » à « string ». Apparemment, la méthode GetLoginUrl renvoie un type Uri et Redirect nécessite une chaîne. Y at-il un autre moyen de rediriger vers un type - Uri?

L'exemple fourni par codeplex est "webBrowser.Navigate (loginUrl);" mais je n'utilise pas le contrôle webBrowser. Devrais-je être? Ou y a-t-il un autre moyen?

J'ai trouvé une solution à ce problème.

Remettez en place les deux dernières lignes:

var loginUrl = oauth.GetLoginUrl(parameters); 
Response.Redirect(loginUrl); 

Avec

var loginUrl = HttpUtility.HtmlEncode(oauth.GetLoginUrl(parameters)); 
Response.Redirect(HttpUtility.HtmlDecode(loginUrl)); 

Conversion en HTML et arrière permet de résoudre le problème. Notez que si vous laissez le loginUrl HtmlEncoded, Facebook renverra une erreur.

Répondre