obtenir un jeton d’access à l’aide du kit de développement logiciel Facebook C #

Bonjour, j’utilise le code suivant pour obtenir le jeton d’access de Facebook à l’aide de C # SDK

var fb = new FacebookClient(); dynamic result = fb.Get("oauth/access_token", new { client_id = "clientId", client_secret = "clientSecret", redirect_uri = "redirectUri", code = "code" }); return result.access_token; 

le code ci-dessus fonctionne parfaitement la plupart du temps, mais parfois je reçois cette erreur

 (OAuthException - #100) Invalid verification code format. 

Comment résoudre ce problème??

Quel est votre type de projet: WinForms , WPF , ASP.NET ?

si vous travaillez avec WinForms ou WPF , vous devez obtenir l’URL de Browser Control du Browser Control access_token forme de access_token en demandant la boîte de dialog de connexion OAuth et le return_type=token , puis extraire le access_token d’ access_token valide de l’URL.

Sinon, si vous travaillez sur une application Web utilisant ASP.NET , vous devrez redirect l’utilisateur vers la page de connexion de la boîte de dialog OAuth, puis le facebook vous redirecta avec un code sur l’URL. Vous obtiendrez ce code de la QuerySsortingng et ferez un HTTPRequest à Facebook pour obtenir le access_token valide.

vous pouvez utiliser ma méthode pour le faire:

  public ssortingng GetAccessTokenFromCode(ssortingng AppID, ssortingng AppSecret, ssortingng RedirectURL, ssortingng Code) { WebClient wc = new WebClient(); ssortingng u2 = "https://graph.facebook.com/oauth/access_token?client_id=" + AppID + "&redirect_uri=" + RedirectURL + "&client_secret=" + AppSecret + "&code=" + Code + "&state=anytexthere"; ssortingng access = wc.DownloadSsortingng(u2); access = access.Subssortingng(access.IndexOf("access_token") + 13); if (access.Contains("&")) { ssortingng accesstoken = access.Subssortingng(0, access.IndexOf("&")); return accesstoken; } return access; } 

et vous pouvez l’appeler depuis le Page_Load :

 if (Request.QuerySsortingng["code"] != null) { code = Request.QuerySsortingng["code"].ToSsortingng(); ssortingng AT = GetAccessTokenFromCode(AppID, AppSecret, RedirectUrl, Code); } 

Vous devriez avoir le même redirect_uri que lorsque vous demandiez du code .
Il doit également y avoir une barre oblique “/” à la fin de l’URL du site que vous avez configurée dans la section “Site Web avec connexion à Facebook” de Facebook.
Voici un tutoriel complet: Travailler avec le SDK C #

Cette page me fait me demander si votre code devrait ressembler davantage à ceci:

  dynamic result = fbClient.Get("oauth/access_token", new { client_id = fbClient.AppId, client_secret = fbClient.AppSecret, grant_type = "fb_exchange_token", fb_exchange_token = accessToken }); 

Peut-être que votre accessToken arrive à expiration

après avoir téléchargé sdk à partir de http://www.nuget.org/packages/Facebook.CSharp.SDK/

 var config = new Dictionary(); //your application id and secret from https://developers.facebook.com/apps config.Add("appId", "3955......."); config.Add("secret", "4c1d..............."); config.Add("fileUpload", true); //optional FacebookClient client = new FacebookClient(config); ulong facebookId = client.getUser(); //resortingeve user id. if user is not added the app this value is 0 client.getAccessToken() 

vous donne le jeton d’access.