obtener un token de acceso usando Facebook C# SDK

Hola yo estoy usando el siguiente código para obtener el token de acceso de facebook usando 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;

el código anterior funciona perfecto, la mayoría del tiempo, pero algunas veces me da este error

(OAuthException - #100) Invalid verification code format.

cómo solucionar este problema??

InformationsquelleAutor Adnan Zameer | 2013-02-20

4 Kommentare

  1. 4

    ¿Cuál es su tipo de proyecto : WinForms , WPF , ASP.NET ?

    si usted está trabajando con WinForms o WPF , usted tiene que obtener la access_token forma el Browser Control URL solicitando la OAuth Diálogo de inicio de Sesión y la return_type=token , a continuación, extraer la válida access_token de la dirección URL.

    De lo contrario , si usted está trabajando en la Aplicación Web utilizando ASP.NET , usted tendrá que redirigir al usuario a la OAuth de Diálogo de inicio de Sesión de la Página, a continuación, el facebook le redirigirá de nuevo con un código en la dirección , puede obtener este código de la QueryString y hacer un HTTPRequest para el Facebook, para obtener la validez access_token .

    puede utilizar mi método para hacer que :

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

    y se puede llamar desde el Page_Load :

    if (Request.QueryString["code"] != null)
    {
    code = Request.QueryString["code"].ToString();
    string AT = GetAccessTokenFromCode(AppID, AppSecret, RedirectUrl, Code);
    }
    • Cómo obtener el AppId, AppSecret, y el Código de valores ?
  2. 0

    Usted debe tener la misma redirect_uri como lo hizo cuando se le pide a code.

    También debe haber una barra diagonal » /»al final de la url del sitio que se ha configurado en el sitio Web con Facebook Login’ en Facebook.

    He aquí un tutorial completo: Trabajando con C# SDK

    • por favor, ser más elaborado en cuando se produce esta excepción. Trate de usar Post solicitud en lugar de Get.
    • bueno, yo no sé que tengo en mi sitio web y obtener límites de detección de techmails para este error. Cuando lo pruebe o pregunte a mis amigos a probar los enlaces de cada cosa funciona bien para mí, pero la tecnología correos siguen llegando de algunos visitantes
    • puedes publicar el método a través del cual recibe el valor de code
  3. 0

    Esta página hace que me pregunte si el código debe ser más parecido a esto:

       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
            });

    Tal vez su accessToken es tiempo de espera o algo?

  4. -1

    después de la descarga del sdk de http://www.nuget.org/packages/Facebook.CSharp.SDK/

    var config = new Dictionary<string, object>();
    //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(); //retrieve user id. if user is not added the app this value is 0
    client.getAccessToken()

    le da el token de acceso.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea