[Python-es] Fwd: Duda sobre atributo auth_token en pyfacebook .

Andrey Antoukh andsux en gmail.com
Vie Abr 15 18:05:44 CEST 2011


No se realmente de que modulo hablais, pero  este "sdk" funciona (
https://github.com/facebook/python-sdk), de hecho lo estamos usando en un
proyecto.
El funcionamiento es simple, inclues los js en tu web:

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js
"></script>
<div id="fb-root"></div>
<script type="text/javascript">
FB.init({ appId:'{{ FCBK_APPID }}', cookie:true, status:true, xfbml:true });
</script>

Una vez eso en la web, en cada peticion deberias detectar la cookie,
parsearla y obtener el token, y guardarla, obviamente si tienes el token con
longtime o parecido (un permiso de facebook) ese token que te da la cookie
no va expirar en bastante tiempo, y con eso puedes hacer peticiones web.

De hecho aqui tienes un ejemplo de un middleware de django de ejemplo que
captura el cookie si esta, si esta y tenemos un usuario en nuestra web con
ese uid entonces actualizamos nuestro token, si no ... se crea el user y
obtenemos X datos de facebook.

Espero haber sido al menos un poco claro!

Un saludo.
Andrei.

El 15 de abril de 2011 17:52, Olemis Lang (Simelix)
<olemis+py en gmail.com>escribió:

> 2011/4/15 Ángel Luis García García <algg78 en telefonica.net>:
> > Hola Olemis.
>
> Hola ! Muchas gracias por responder ...
> :)
>
> > Yo te puedo contar mi experiencia con el módulo pyfacebook.
>
> /me listening ... m acabo d instalar oídos , por todas partes ... ;)
>
> > Hace unos meses intenté escribir una aplicación de escritorio, que se
> > contectase a una aplicación de Facebook, mediante el ódulo pyfacebook. El
> > problema es que parecía no ir, y eso que hice lo que ponía dentro de la
> > clase, a saber:
> >
> [...]
> >
> > # Al ser esta una aplicación de escritorio hay que realizar los
> siguientes
> > pasos:
> > # Crear un token de autorización
> > fb.auth.createToken()
> > # Mostrar en el navegador web el login de usuario/contraseña para acceder
> a
> > Facebook.
> > fb.login(popup = True)
> > # Esperamos a que el usuario inicie sesión...
> > raw_input("Después de hacer logging, pulse cualquier tecla para
> > continuar...")
> > # Obtenemos una clave de sesión.
> > fb.auth.getSession()
>
> Este es el asunto ... no es una aplicación de escritorio lo q yo
> menciono sino una web con OAuth 2.0 . Para el escritorio m funciona
> esto bien , solo q le puse q no c conectara en canvas mode y le
> especifiqué el callback URL a la q sugieren en la doc d la API para
> aplicaciones d escritorio .
>
> La cuestión es q como es OAuth, hay otro modelo d URLs [1]_ basado en
> el access_token para acceder a la REST API, pero el módulo parece q
> solo tiene soporte para algunas cosas del OAuth , y en el caso de la
> REST API (especialmente el método auth.getSession q es el q m hace
> falta llamar ;) solo usa el esquema viejo basado en auth_token ...
>
> :$ ... d todas formas sigo considerando consejos y pruebo alternativas
> pq realmente necesito los datos q facilita auth.getSession ... ;)
>
> > El problema es que no iba ni a tiros. Me metí en comunidades de Python y
> > parece ser que se ha cambiado algo en Facebook que hace que no se pueda
> > conectar con este módulo de la manera que debería de ser.
>
> ... ya le digo, yo si he podido quitandole el canvas mode y
> especificando el callback q recomienda la doc para apps desktop
>
> ;)
>
> > Pero claro, desde
> > una aplicación de escritorio y de esta forma.
> > Te cuento mi experiencia por si te sirve de algo.
>
> hmmmm ... sospecho q tendré q hacer lo q no quería hacer q era hacerlo yo
> mismo
> déjeme sacar la bola d cristal a ver cómo tengo el futuro ... a ver
> ... veo, veo ... ¡ostias! ...
> ¿¡ q veo !?
>
> :)
>
> ¡ gracias !
>
> .. [1] upgrade your session keys to OAuth access tokens
>         (http://developers.facebook.com/docs/guides/upgrade/#oauth)
>
> --
> Regards,
>
> Olemis.
>
> Blog ES: http://simelo-es.blogspot.com/
> Blog EN: http://simelo-en.blogspot.com/
>
> Featured article:
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



-- 
http://twitter.com/andsux
http://www.niwi.be
****
http://www.freebsd.org/
http://www.postgresql.org/
http://www.python.org/
http://www.djangoproject.com/

"Linux is for people who hate Windows, BSD is for people who love UNIX"
"Social Engineer -> Because there is no patch for human stupidity"
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110415/30c1f25f/attachment.html>


Más información sobre la lista de distribución Python-es